示例#1
0
        public void DealerLoop()
        {
            int NewCard;

            Console.WriteLine("----------------");
            Console.WriteLine("Dealers turn");
            Console.WriteLine("----------------");

            int PlayerStatusCount = 0;

            foreach (Player player in ListOfPlayers)
            {
                if (player.PlayStatusProp == true)
                {
                    PlayerStatusCount++;
                    Console.WriteLine($"Player #{player.ShowID}s hand: {player.CountCards()}");
                }
            }

            if (PlayerStatusCount != 0)
            {
                do
                {
                    Console.WriteLine("This is your hand: ");
                    dealer.ShowHand();

                    Console.WriteLine("1. Add card to hand");
                    Console.WriteLine("2. End your turn");

                    int playerinput = int.Parse(Console.ReadLine());
                    if (playerinput == 1)
                    {
                        NewCard = deck.ChooseCard();
                        dealer.ReceiveCard(NewCard);
                    }
                    else if (playerinput == 2)
                    {
                        foreach (Player player in ListOfPlayers)
                        {
                            if (player.PlayStatusProp == true)
                            {
                                if (dealer.CountCards() >= player.CountCards())
                                {
                                    Console.WriteLine($"Dealer won vs Player #{player.ShowID}, player lost {player.BettedMoneyProp}.");
                                    dealer.AddMoney(player.BettedMoneyProp);
                                    player.ResetBetMoney();
                                }
                                else
                                {
                                    Console.WriteLine($"Player #{player.ShowID} won {player.BettedMoneyProp * 2} against Dealer.");
                                    player.AddMoney(player.BettedMoneyProp);
                                    player.ResetBetMoney();
                                }
                            }
                        }
                        Console.ReadKey();
                        break;
                    }
                } while (dealer.CountCards() < 21);

                if (dealer.CountCards() == 21)
                {
                    Console.WriteLine("Dealer received 21 and won everything!");
                    foreach (Player player in ListOfPlayers)
                    {
                        Console.WriteLine($"Player #{player.ShowID} lost {player.BettedMoneyProp}");
                        dealer.AddMoney(player.BettedMoneyProp);
                        player.ResetBetMoney();
                    }
                    Console.ReadKey();
                }
                else if (dealer.CountCards() > 21)
                {
                    dealer.ShowHand();
                    Console.WriteLine($"Dealer exceeded 21 by {dealer.CountCards() - 21}.");
                    foreach (Player player in ListOfPlayers)
                    {
                        if (player.PlayStatusProp == true)
                        {
                            Console.WriteLine($"Player #{player.ShowID} won {player.BettedMoneyProp * 2}");
                            player.AddMoney(player.BettedMoneyProp);
                            player.ResetBetMoney();
                        }
                    }
                    Console.ReadKey();
                }
            }
            else
            {
                Console.WriteLine("Every player lost, next turn!");
            }
        }