Esempio n. 1
0
 /// <summary>
 /// Draw a card from the carddeck to the dealer
 /// </summary>
 /// <param name="numberOfPlayers">How many players there are</param>
 /// <param name="playersList">List of players</param>
 /// <param name="deckOfCards">List of cards available</param>
 /// <param name="deal">What deal we are on</param>
 private static void DrawPlayersCards(int numberOfPlayers, List <Player> playersList, List <Card> deckOfCards, int deal)
 {
     for (int i = 0; i < numberOfPlayers; i++)
     {
         int  randCard = Card.RandomCardFromDeck(deckOfCards.Count);
         Card card     = deckOfCards[randCard];
         deckOfCards.RemoveAt(randCard);
         //string tempCardString = card.cardName + " of " + card.suit;
         string tempCardString = card.fullCardName;
         playersList[i].CurrentHand[deal] = tempCardString;
         Card.ShowDrawnCard(card);
         if (card.value == 1)
         {
             playersList[i].CurrentValue[0] += 1;
             playersList[i].CurrentValue[1] += 11;
         }
         else
         {
             playersList[i].CurrentValue[0] += card.value;
             playersList[i].CurrentValue[1] += card.value;
         }
         if (i < numberOfPlayers - 1)
         {
             Console.Write("\t\t");
         }
     }
 }
Esempio n. 2
0
        /// <summary>
        /// The 'AI' of the dealer. He will play until he reaches 17 or more.
        /// </summary>
        /// <param name="deckOfCards">Current list of cards in carddeck</param>
        /// <param name="playersList">Current list of players in game</param>
        public void HitOrStand(List <Card> deckOfCards, List <Player> playersList)
        {
            int deal = 2;

            while (true)
            {
                deal++;
                Display.DisplayDealer(this, true);
                Display.DisplayPlayers(playersList.Count, playersList);
                //Check if winner or should stop
                if (DealerValue[0] >= 17 || (DealerValue[1] >= 17 && DealerValue[1] < 22))
                {
                    //To shorten the need for comparison later, let DealerValue[0] be the same as DealerValue[1] as
                    //long as that value is not bigger than 21.
                    if (DealerValue[1] >= 17 && DealerValue[1] < 22)
                    {
                        DealerValue[0] = DealerValue[1];
                    }
                    break;
                }
                else
                {
                    //Get a new card
                    int  randCard = Card.RandomCardFromDeck(deckOfCards.Count);
                    Card card     = deckOfCards[randCard];
                    deckOfCards.RemoveAt(randCard);
                    Card.ShowDrawnCard(card);
                    string tempCardString = card.fullCardName;
                    DealerHand[deal] = tempCardString;

                    if (card.value == 1) //If we got an ace
                    {
                        DealerValue[0] += 1;
                        DealerValue[1] += 11;
                    }
                    else
                    {
                        DealerValue[0] += card.value;
                        DealerValue[1] += card.value;
                    }

                    //If we have over 21.
                    if (DealerValue[0] > 21)
                    {
                        Console.WriteLine();
                        Console.WriteLine("Dealer busted!!");
                        break;
                    }

                    //If we got 'Charlie Black Jack', meaning we have five cards on our hand, we automaticly have 21.
                    if (deal >= 5 && DealerValue[0] < 22 && DealerValue[1] < 22)
                    {
                        DealerValue[0] = 21;
                        DealerValue[1] = 21;
                        Console.WriteLine();
                        Console.Write("Dealer got Charlie Black Jack!! Press enter to continue");
                        Console.ReadLine();
                        break;
                    }
                }
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Choose between Hit (Taking a new card) or Stand.
        /// </summary>
        /// <param name="deckOfCards">Currently used carddeck</param>
        /// <param name="playersList">List of players in game</param>
        /// <param name="dealer">The Dealer object</param>
        public static void HitOrStand(List <Card> deckOfCards, List <Player> playersList, Dealer dealer)
        {
            for (int i = 0; i < playersList.Count; i++)
            {
                int deal = 2;
                while (true)
                {
                    if (playersList[i].CurrentValue[0] == 21 || playersList[i].CurrentValue[1] == 21)
                    {
                        Console.Write($"{playersList[i].PlayerName}: You got Black Jack! Press enter for next player");
                        Console.ReadLine();
                        break;
                    }

                    if (playersList[i].CurrentValue[0] == playersList[i].CurrentValue[1])
                    {
                        Console.Write($"{playersList[i].PlayerName}: You got {playersList[i].CurrentValue[0]}, do you want to (H)it or (S)tand? ");
                    }
                    else
                    {
                        Console.Write($"{playersList[i].PlayerName}: You got {playersList[i].CurrentValue[0]} / {playersList[i].CurrentValue[1]}, do you want to (H)it or (S)tand? ");
                    }


                    string playerChoise = Console.ReadLine();
                    if (playerChoise.ToLower() == "h")
                    {
                        Console.WriteLine();
                        int  randCard = Card.RandomCardFromDeck(deckOfCards.Count);
                        Card card     = deckOfCards[randCard];
                        deckOfCards.RemoveAt(randCard);
                        Card.ShowDrawnCard(card);
                        string tempCardString = card.fullCardName;
                        playersList[i].CurrentHand[deal] = tempCardString;
                        deal++;
                        if (card.value == 1) //If card is ace
                        {
                            playersList[i].CurrentValue[0] += 1;
                            playersList[i].CurrentValue[1] += 11;
                        }
                        else
                        {
                            playersList[i].CurrentValue[0] += card.value;
                            playersList[i].CurrentValue[1] += card.value;
                        }
                        if (deal >= 5 && playersList[i].CurrentValue[0] < 22 && playersList[i].CurrentValue[1] < 22) //Got Charlie Black Jack, set score to 21
                        {
                            playersList[i].CurrentValue[0] = 21;
                            playersList[i].CurrentValue[1] = 21;
                            Console.WriteLine();
                            Console.Write("You got Charlie Black Jack!! Press enter for next player");
                            Console.ReadLine();
                            break;
                        }
                        if (playersList[i].CurrentValue[0] > 21 && playersList[i].CurrentValue[1] > 21)
                        {
                            //We got over 21
                            Console.WriteLine();
                            Console.WriteLine("You are busted!!");
                            break;
                        }
                        else if (playersList[i].CurrentValue[0] == 21 || playersList[i].CurrentValue[1] == 21)
                        {
                            //We got Black Jack
                            Console.WriteLine();
                            Console.WriteLine("You got Black Jack!! Press enter for next player");
                            Console.ReadLine();
                            break;
                        }
                    }
                    else if (playerChoise.ToLower() == "s")
                    {
                        //Assign the best value to currentvalue[0] for compareson
                        //when we check winners
                        if (playersList[i].CurrentValue[1] <= 21)
                        {
                            playersList[i].CurrentValue[0] = playersList[i].CurrentValue[1];
                        }
                        break;
                    }

                    Display.DisplayBoard(dealer, playersList.Count, playersList, deal);
                }
            }
        }