/// <summary> /// Empty the DealerShoe, swap the Discard with Dealer shoes, and reshuffle. /// </summary> private void Reshuffle() { while (DealerShoe.CardsLeft > 0) { DiscardShoe.AddCard(DealerShoe.DrawCard()); } Deck tmp = DiscardShoe; DiscardShoe = DealerShoe; DealerShoe = tmp; DealerShoe.Shuffle(Rules.SubsequentShuffle); OnShoeShuffle(); ReshuffleLimit = (int)(Rules.ReshuffleMinimum * DealerShoe.CardsLeft) + random.Next((int)((Rules.ReshuffleMaximum - Rules.ReshuffleMinimum) * DealerShoe.CardsLeft)); }
/// <summary> /// Draws a card from the dealer shoe. /// </summary> /// <param name="FaceDown">Set this to true if the card is dealt face down. Default is false</param> /// <returns>Card drawn from dealer shoe</returns> private Card DrawCard(bool FaceDown = false) { if (DealerShoe.CardsLeft == 0) { Debug.WriteLine("table> No cards left to deal. Reshuffling discards"); Reshuffle(); } Card newCard = DealerShoe.DrawCard(); if (!FaceDown) { OnCardExposure(new CardExposedEventArgs(newCard.Clone())); } return(newCard); }