class sjmPlayer{
 private:
  unsigned long int *tiles, *backuptiles;
  int score;
  unsigned long int code;
 public:
  sjmPlayer(int TILENUM, unsigned long int code);
  ~sjmPlayer();
  
  void  //make a copy of the move into the specified destination
    Copy(TheMove& dest);

  int  //returns number of tiles in player's possession
    getNumTiles();

  char*  //copy player tiles into an array
    getTiles();

  int   //add tile to player's rack, returns 1 if successful, 0 otherwise
    addTile(unsigned long int tile);

  int  //returns number of tiles
    TileCount();

  void  //revert tiles to the backup copy
    RevertTiles();

  void  //synchronize backup and tiles
    SynchronizeTiles():
  
  unsigned long int  //get code
    getCode();
 
  int  //verify the code
    IsRightCode(unsigned long int test);

  //score functions

  int  //returns score
    getScore();

  void  //adds amount to score
    addScore(int amount);
}


