public void DealerPlays(IGroupOfCards cardDeck, List <ICard> dealerCards, IDealerStrategy dealerStrategy)
 {
     while (dealerStrategy.ShouldHit(dealerCards))
     {
         dealerCards.Add(GetTopCardFrom(cardDeck));
     }
 }
 public void DealInitialCards(IGroupOfCards cardDeck, List <IPlayer> players, List <ICard> dealerCards)
 {
     DealSingleCardTo(players, cardDeck);
     dealerCards.Add(GetTopCardFrom(cardDeck));
     DealSingleCardTo(players, cardDeck);
     dealerCards.Add(GetTopCardFrom(cardDeck));
 }
 private void DealSingleCardTo(List <IPlayer> players, IGroupOfCards cardDeck)
 {
     foreach (var player in players)
     {
         player.TakeCard(GetTopCardFrom(cardDeck));
     }
 }
Exemple #4
0
 public Dealer(IGroupOfCards cardDeck, IGameManager gameManager, IDealerStrategy dealerStrategy)
 {
     _cardDeck         = cardDeck;
     _gameManager      = gameManager;
     _dealerStrategy   = dealerStrategy;
     RegisteredPlayers = new List <IPlayer>();
     CurrentCards      = new List <ICard>();
 }
        private ICard GetTopCardFrom(IGroupOfCards cardDeck)
        {
            var cardToReturn = cardDeck.PullTopCard();

            if (cardToReturn.GetType() == typeof(NullCard))
            {
                throw new EmptyGroupOfCardsException();
            }

            return(cardToReturn);
        }
 public void PlayersPlay(IGroupOfCards cardDeck, List <IPlayer> players, ICard dealersVisibleCard)
 {
     foreach (var player in players)
     {
         player.PlayTurn(dealersVisibleCard);
         while (player.DoesNeedCard)
         {
             player.TakeCard(GetTopCardFrom(cardDeck));
             player.PlayTurn(dealersVisibleCard);
         }
     }
 }