Example #1
0
        public void Draw(Deck currentDeck)
        {
            var      availableCards = Enumerable.Range(0, 52).Where(i => !currentDeck.discards.Contains(i));
            int      index          = rand.Next(0, 51 - currentDeck.discards.Count);
            BaseCard selectedCard   = currentDeck.cards[availableCards.ElementAt(index)];

            cards.Add(selectedCard);
            currentDeck.discards.Add(availableCards.ElementAt(index));
            if ("JQK".Contains(selectedCard.Value))
            {
                CardValue += 10;
            }
            else if (selectedCard.Value == 'A')
            {
                softAce++;
                CardValue += 11;
            }
            else
            {
                CardValue += int.Parse(selectedCard.Value.ToString());
            }
            if (CardValue > 21 && softAce > 0)
            {
                CardValue -= 10;
                softAce--;
            }
        }
Example #2
0
 public Deck()
 {
     char[] suits  = { 'C', 'S', 'H', 'D' };
     char[] values = { '1', '2', '3', '4', '5', '6', '7', '8', '9', 'J', 'Q', 'K', 'A' };
     for (int i = 0; i < 52; i++)
     {
         cards[i] = new BaseCard();
     }
     for (int j = 0; j < suits.Length; j++)
     {
         for (int k = 0; k < values.Length; k++)
         {
             int currentCard = j * values.Length + k;
             cards[currentCard].Suit  = suits[j];
             cards[currentCard].Value = values[k];
         }
     }
 }