Esempio n. 1
0
 /**
  * @param Player $player
  * @param Move   $move
  */
 public function addMove(Player $player, Move $move)
 {
     if (!$this->getState()->isStarted()) {
         throw new InvalidMoveException('Game has not started or is already finished');
     }
     if ($move->getTurnNumber() !== $this->getCurrentTurn()->getNumber()) {
         throw new InvalidMoveException('Turn number move does not match current game turn number');
     }
     if ($player->getNumber() !== $this->getCurrentTurn()->getPlayerNumber()) {
         throw new InvalidMoveException('player cannot move at the current turn (current player is ' . $this->getCurrentTurn()->getPlayerNumber() . ')');
     }
     $this->nextTurn();
 }