private void CheckForPlayerEndOfTurn() { if (Hands.All(h => h.Status != HandStatusTypes.InProgress)) { Status = PlayerStatusTypes.Complete; } }
public BlackJackPlayer(AvitarDto avitar, IHandIdentifierProvider handIdProvider, int handCount) { Name = avitar.UserName ?? throw new ArgumentNullException(nameof(avitar.UserName)); Identifier = avitar.Id; this.handIdProvider = handIdProvider ?? throw new ArgumentNullException(nameof(handIdProvider)); if (handCount < 1) { throw new ArgumentOutOfRangeException(nameof(handCount)); } AddHands(handCount); Status = PlayerStatusTypes.Waiting; }
public void DealHands(IEnumerable <ICard> cards) { if (Status != PlayerStatusTypes.Ready) { throw new InvalidOperationException("Player Status Must be Waiting to Deal Hands."); } if (cards.Count() != hands.Count * 2) { throw new ArgumentOutOfRangeException("Card Count must equal TWO Per Hand."); } hands.ForEach(h => h.AddCardRange(cards.Take(2))); Status = PlayerStatusTypes.InProgress; }