예제 #1
0
 /** 
  * @test
  * @expectedException \Llvdl\Domino\Domain\Exception\InvalidMoveException 
  */
 public function moveOnlyAllowedForCurrentPlayer()
 {
     $this->game->deal();
     $currentPlayerNumber = $this->game->getCurrentTurn()->getPlayerNumber();
     $player = $this->game->getPlayerByPlayerNumber($currentPlayerNumber);
     $play = new Play(1, new Stone(6, 6), Table::SIDE_LEFT);
     $nextPlayerNumber = $currentPlayerNumber === 4 ? 1 : $currentPlayerNumber + 1;
     $nextPlayer = $this->game->getPlayerByPlayerNumber($nextPlayerNumber);
     $nextPlayer->addStones([new Stone(6, 6)]);
     $this->game->addMove($nextPlayer, $play);
 }
예제 #2
0
 /**
  * @param Play $play
  */
 public function play(Play $play)
 {
     if (!$this->hasStone($play->getStone())) {
         throw new InvalidMoveException('player does not have stone');
     }
     try {
         $this->removeStone($play->getStone());
         $this->game->addMove($this, $play);
     } catch (InvalidMoveException $e) {
         $this->addStones([$play->getStone()]);
         throw $e;
     }
 }