コード例 #1
0
        public void PlayGame()
        {
            int count = 0;

            while (count != 40)
            {
                Deck = new Deck();
                Deck.Shuffle();

                for (int i = 0; i < Players.Count; i++)
                {
                    if (Players[i].Money <= 0)
                    {
                        WriteOutOfGameMessage(Players[i]);
                        Players.Remove(Players[i]);
                        i--;
                    }
                }

                if (Players.Count == 0)
                {
                    WriteGameOverMessage();
                    return;
                }

                foreach (Player player in Players)
                {
                    player.MakeBet();
                    WritePlayerBet(player);
                }

                Dealer.Begin(Deck);

                foreach (Player player in Players)
                {
                    player.Hands[0].Hit(Deck.GetCard());
                    player.Hands[0].Hit(Deck.GetCard());
                    WritePlayerCards(player);
                }

                if (Dealer.Cards[0].Number == CardNumber.Ace)
                {
                    WriteDealerAce();
                    foreach (Player player in Players)
                    {
                        player.GetInsurance(Dealer);
                    }

                    if (Dealer.Score == 21)
                    {
                        foreach (Player player in Players)
                        {
                            player.Finish(Dealer);
                        }
                        count++;
                        Dealer.Finish();
                        continue;
                    }
                }

                if (DealerGetBlackjack())
                {
                    count++;
                    continue;
                }

                foreach (Player player in Players)
                {
                    player.PlayTurn(Deck);
                    Console.WriteLine();
                }

                Dealer.Play(Deck);
                WriteDealerCards();

                foreach (Player player in Players)
                {
                    player.Finish(Dealer);
                }

                Dealer.Cards.Clear();
                Dealer.Score = 0;

                count++;
            }
            WriteResults();
        }