Exemple #1
0
 public function testCheckIfAreDiffrentPlayers()
 {
     $player1 = new Player('player 1');
     $player2 = new Player('player 2');
     Player::checkIfAreDiffrentPlayers($player1, $player2);
     $this->addToAssertionCount(1);
     $expectedException = PlayerException::theseSamePlayers($player1);
     $this->expectException(get_class($expectedException));
     $this->expectExceptionMessage($expectedException->getMessage());
     Player::checkIfAreDiffrentPlayers($player1, $player1);
 }
Exemple #2
0
 /**
  * When $winPlayer win round, it is collect all cards which are situated on GameTable
  *
  * @param Player $winPlayer
  */
 protected function collectCardsByWinnerPlayer(Player $winPlayer)
 {
     $winCardsCollection = new CardCollection();
     foreach ($this->getPlayers() as $player) {
         $winCardsCollection->appendMany($this->gameTable->getPlayerCards($player)->collectAll());
     }
     $winCardsCollection->setAllVisible(false);
     $winCardsCollection->shuffle();
     $winPlayer->getCards()->prependMany($winCardsCollection->collectAll());
 }
Exemple #3
0
 /**
  * Giveing $card from $byPlayer to $toPlayer
  * Implemented games can override this metod by should call it for this action
  *
  * @param Card $card
  * @param Player $byPlayer
  * @param Player $toPlayer
  */
 public function giveCardByPlayerToPlayer(Card $card, Player $byPlayer, Player $toPlayer)
 {
     $byPlayer->checkPlayerHasCard($card);
     $toPlayer->checkPlayerHasNotCard($card);
     Player::checkIfAreDiffrentPlayers($byPlayer, $toPlayer);
     $this->checkPlayerCanGiveCardToPlayer($byPlayer, $toPlayer, $card);
     $byPlayerCard = $byPlayer->getCards()->collect($card);
     $toPlayer->getCards()->append($byPlayerCard);
 }