void Goban::Game::setPlayer(const int pNum, const std::string name, const int playerID) { if (pNum < players.size() && pNum >= 0) { players[pNum] = new Player(name, playerID); } else { throw InvalidPlayerException(pNum); } }
Goban::Player * Goban::Game::getPlayer(int pNum) const { if (pNum < players.size() && pNum >= 0) { return players.at(pNum); } else { throw InvalidPlayerException(pNum); } }
int PlayerProxy::getIndex() { auto begin = connection.getGameState().getPlayers().begin(); auto end = connection.getGameState().getPlayers().end(); auto i = std::find(begin, end, this); if(i == end) throw InvalidPlayerException(); return std::distance(begin, i); }
void Goban::Game::makeMove(int pNum, int r, int c) { if (pNum < players.size() && pNum >= 0) { previousPlayer = pNum; theBoard->playStone(players.at(pNum), r, c); } else { throw InvalidPlayerException(pNum); } }