Exemple #1
0
        /// <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));
        }
Exemple #2
0
        /// <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);
        }