public IHand[] Deal(IDealer dealer) { var hands = new IHand[dealer.HandCount]; dealer.SetCards(cards); while (dealer.CanDeal()) { for (var i = 0; i < dealer.HandCount; i++) { if (hands[i] == null) { hands[i] = dealer.CreateHand(); } if (dealer.CanDeal(hands[i])) { hands[i].AddCard(dealer.GetCard()); } } } return(hands); }