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)); } }
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); } } }