コード例 #1
0
ファイル: Game.cs プロジェクト: Kalasmax/BlackJack
        public Game()
        {
            // Shuffle the deck before dealing
            deck.Shuffle();

            // Dealing out the entry hand for player & dealer
            Console.WriteLine($"Your 1st card: {playerDraw()}.");
            Console.WriteLine($"Dealer's 1st card: {dealerDraw()}.");
            Console.WriteLine($"Your 2nd card: {playerDraw()}.");
            Console.WriteLine("Dealers 2nd card is hidden.");
            string hiddenDraw = dealerDraw();

            // Game logistics & rules
            bool playerStop = false;
            bool activeGame = true;

            while (activeGame)
            {
                int  sum         = 0;
                bool containsAce = false;
                foreach (Card card in player.Hand)
                {
                    int value = Convert.ToInt32(card.Value);
                    if (value == 1)
                    {
                        containsAce = true;
                    }
                    if (value > 10)
                    {
                        value = 10;
                    }
                    sum += value;
                }

                if (!playerStop)
                {
                    if (containsAce)
                    {
                        int lowValue  = player.LowValue();
                        int highValue = player.HighValue();
                        if (lowValue > 21)
                        {
                            Console.WriteLine($"You busted on: {sum}, press any key to play again. . .");
                            activeGame = false;
                            break;
                        }
                        Console.WriteLine($"Your low value: {lowValue}.");
                        if (highValue < 21)
                        {
                            Console.WriteLine($"Your high value: {highValue}.");
                        }
                    }
                    else
                    {
                        if (sum > 21)
                        {
                            Console.WriteLine($"You busted on: {sum}, press any key to play again. . .");
                            activeGame = false;
                            break;
                        }
                        else
                        {
                            Console.WriteLine($"Your current value: {sum}.");
                        }
                    }

                    Console.WriteLine("Draw another card?");
                    Console.WriteLine("1) Yes.");
                    Console.WriteLine("2) No.");
                    string playAgain = Console.ReadLine();

                    if (playAgain == "1")
                    {
                        playerDraw();
                    }
                    else
                    {
                        playerStop = true;
                        sum        = player.BestValue(player.LowValue(), player.HighValue());
                    }
                }

                int dealerValue = 0;
                do
                {
                    dealerValue = Convert.ToInt32(dealer.HighValue());
                    if (dealerValue > 21)
                    {
                        Console.WriteLine($"Dealer busted on: {dealerValue}, you won! ");
                        Console.WriteLine("Press any key to play again. . .");
                        activeGame = false;
                        break;
                    }
                    else if (dealerValue > sum && playerStop == true)
                    {
                        Console.WriteLine($"You lost, you have: {sum}. Dealer has: {dealerValue}.");
                        Console.WriteLine("Press any key to play again. . .");
                        activeGame = false;
                        break;
                    }
                    else if (dealerValue <= 16)
                    {
                        dealerDraw();
                    }

                    else if (dealerValue >= 17)
                    {
                        if (playerStop)
                        {
                            if (sum > dealerValue)
                            {
                                Console.WriteLine($"You won on: {sum}.");
                                Console.WriteLine("Press any key to play again. . .");
                            }
                            else if (dealerValue > sum)
                            {
                                Console.WriteLine($"Dealer won on: " + dealerValue);
                                Console.WriteLine("Press any key to play again. . .");
                            }
                            else if (dealerValue == 20 && sum == 20)
                            {
                                Console.WriteLine("It's a tie, both of you got 20.");
                                Console.WriteLine("Press any key to play again. . .");
                            }
                            else
                            {
                                Console.WriteLine($"Dealer won on, you both got: {dealerValue}.");
                                Console.WriteLine("Press any key to play again. . .");
                            }
                            activeGame = false;
                            break;
                        }
                        else
                        {
                            Console.WriteLine($"Dealer stopped on: {dealerValue}.");
                        }
                    }
                }while (playerStop && dealerValue < 16);
            }
            Console.ReadLine();
        }