home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 138.lha / Cycle / Round.c < prev    next >
C/C++ Source or Header  |  1986-11-20  |  947b  |  40 lines

  1. /*
  2.   "Round the clock" is a lightweight - he looks at all the cells around his
  3.    current position up to four cells away. A sum is computed for the cells in
  4.    each direction, with the closer cells receiving a greater weight. The
  5.    direction with the lowest "score" is then chosen. Such a strategy can be
  6.    effective, but you must resist looking too many layers away and spending
  7.    too long computing the next move.
  8. */
  9. #include "cycles.h"
  10.  
  11. char player_name[] = "Round the Clock";
  12.  
  13. long xdir[] = {0,1,0,-1};
  14. long ydir[] = {-1,0,1,0};
  15.  
  16. strategy_init() {}
  17. strategy_finish() {}
  18.  
  19. strategy()
  20. {
  21.   long x,y,dir;
  22.   long score,best;
  23.   long i,j;
  24.  
  25.   GetInfo(&x,&y,&dir);
  26.  
  27.   best = 1000; /* bigger than biggest possible score */
  28.   for (i=0; i<4; i++) {
  29.     if (Look(i)) continue;
  30.     score = 0;
  31.     for (j=2; j<4; j++)
  32.       score += Inquire(x + j*xdir[i],y+ j*ydir[i]);
  33.     if (score < best) {
  34.       best = score;
  35.       dir = i;
  36.     }
  37.   }
  38.   return(dir);
  39. }
  40.