#include <players.h>
Inheritance diagram for ComputerSpy:
Public Methods | |
ComputerSpy (char *name, int color) | |
ComputerSpy (char *name, int color, PosType pos) | |
Protected Methods | |
Move | ChooseMove (void) |
Move * | FindFarthest (int x, int y, MoveList *moves) |
|
Definition at line 156 of file players.h.
00156 : Player (name, color) { } |
|
Definition at line 157 of file players.h. References PosType.
00158 : Player (name, color, pos) { } |
|
Reimplemented from Player. Definition at line 211 of file players.c. References FindFarthest(), and Move::Next.
00212 { 00213 MoveList *ml; 00214 Move *shalowitz, theMove; 00215 int ira, barry; // If it was us, could you eat? 00216 00217 ml = theRules.GetLegalMoves (*this); 00218 ira = ml -> Length (); 00219 if (ira == 0) // Dooh! 00220 theMove = UI.NoLegalMoves (*this); 00221 else // Our AI routine 00222 { 00223 ira = theRules.SpyLastX (); 00224 barry = theRules.SpyLastY (); 00225 shalowitz = FindFarthest (ira, barry, ml); 00226 00227 theMove = *shalowitz; // Rum raisin! Woof! 00228 theMove.Next = NULL; 00229 } 00230 delete ml; // Let's try Smalltalk 00231 return theMove; 00232 } |
|
Definition at line 186 of file players.c. Referenced by ChooseMove().
00187 { 00188 Move *best, *temp; 00189 int deltaX, deltaY; 00190 double dist, farthest = 0; 00191 00192 moves -> Reset (); 00193 best = moves -> GetCurrent (); 00194 while (moves -> Next ()) 00195 { 00196 temp = moves -> GetCurrent (); 00197 deltaX = x - theMap.x (temp -> Node); 00198 deltaY = y - theMap.y (temp -> Node); 00199 dist = deltaX * deltaX; 00200 dist += deltaY * deltaY; 00201 dist = sqrt (dist); 00202 if (dist > farthest) 00203 { 00204 best = temp; 00205 farthest = dist; 00206 } 00207 } 00208 return best; 00209 } |