Esempio n. 1
0
int ChessPiece::moveAvailableStates(const int newBoardPos) const
{
    if (isParentPiece(newBoardPos))
        return ChessTypes::MoveNotAvailable;

    return moveAvailable(ChessPos(newBoardPos));
}
Esempio n. 2
0
bool Game::isLeaf() const
{
  bool return_value = false;

  FindWinner* finder_p = FindWinner::Instance();

  if ( ( finder_p->hasWinner(&human_m) )    ||
       ( finder_p->hasWinner(&computer_m) ) ||
       ( ! moveAvailable() )                   )
  {
    return_value = true;
  }

  return return_value;
}
Esempio n. 3
0
int Game::getValue()
{
  FindWinner* finder_p = FindWinner::Instance();

  if ( finder_p->hasWinner(&human_m) )
  {
    game_value_m = -1;
  }
  else if ( finder_p->hasWinner(&computer_m) ) 
  {
    game_value_m = 1;
  }
  else if ( ! moveAvailable() ) 
  {
    game_value_m = 0;
  }
  
  return game_value_m; 
}