Esempio n. 1
0
 /**
  * Putting of $card by $player as own
  * Implemented games can override this metod by should call it for this action
  *
  * @param Card $card
  * @param Player $player
  */
 public function putCardByPlayer(Card $card, Player $player)
 {
     $player->checkPlayerHasCard($card);
     $this->checkPlayerCanPutCard($player, $card);
     $playerCard = $player->getCards()->collect($card);
     $this->gameTable->getPlayerCards($player)->append($playerCard);
 }
Esempio n. 2
0
 /**
  * @param Player[] $players
  * @param Card[] $firstPlayerCards
  * @param Card[] $cardsInPile
  * @return GameTable
  */
 private function prepareGameTable(array $players, array $firstPlayerCards, array $cardsInPile) : GameTable
 {
     $gameTable = new GameTable($players);
     $gameTable->getPlayerCards(reset($players))->appendMany($firstPlayerCards);
     $gameTable->getCardsPile()->appendMany($cardsInPile);
     return $gameTable;
 }