home *** CD-ROM | disk | FTP | other *** search
/ The Pier Shareware 6 / The_Pier_Shareware_Number_6_(The_Pier_Exchange)_(1995).iso / 035 / pmics.zip / game.hh < prev    next >
Text File  |  1994-10-29  |  1KB  |  47 lines

  1. #ifndef GAME_INCLUDED
  2. #define GAME_INCLUDED
  3. class AGame
  4. {
  5. public:
  6.   enum Piece {
  7.     EMPTY = 0,
  8.     B_ROO, B_KNI, B_BIS, B_QUE, B_KIN, B_PAW,
  9.     W_ROO, W_KNI, W_BIS, W_QUE, W_KIN, W_PAW
  10.     };
  11.   enum Color {
  12.     WHITE = 0,
  13.     BLACK = 1
  14.     };
  15.  
  16.   AGame();
  17.   ~AGame();
  18.  
  19.   static Boolean isBlack(Piece p) { return p>=B_ROO && p<=B_PAW; }
  20.   static Boolean isWhite(Piece p) { return p>=W_ROO && p<=W_PAW; }
  21.   static Piece toPiece(char);        // convert 'R' to W_ROO, etc.
  22.  
  23.   Color onMove() { return onMoveColor; }
  24.   void setOnMove(Color m) { onMoveColor = m; }
  25.  
  26.   void initialize();
  27.  
  28.   int moveNumber() { return movenum; }
  29.   void setMoveNumber(int n) { movenum = n; }
  30.  
  31.   inline enum Piece piece(int file, int rank) { 
  32.     return pieceArray[rank][file]; 
  33.   }
  34.   inline void setPiece(int file, int rank, Piece p) {
  35.     pieceArray[rank][file] = p;
  36.   }
  37.  
  38.   char *asString();
  39.  
  40.   static AGame* current();
  41. private:
  42.   enum Color    onMoveColor;
  43.   int           movenum;
  44.   enum Piece    pieceArray[8][8], opieceArray[8][8];
  45. };
  46. #endif
  47.