Exemple #1
0
        public static void HandOutCards()
        {
            var flag = false; //нужен для того, чтобы дать последнему игроку, если это возможно, удалиться. (и получить ничью)

            while (true)
            {
                var number = 1;
                foreach (var player in Players)
                {
                    flag = true;
                    player.QueueNumber = number;
                    number++;

                    if (Deck.Cards.Count <= 0 && player.Hand.Count == 0)
                    {
                        GameDurak.AllowGoNextInQueue(player);
                        Players.Remove(player);
                        flag = false;
                        break;
                    }

                    while (player.Hand.Count < LimiterHandOutCards && Deck.Cards.Count > 0)
                    {
                        player.Hand.Add(Deck.Cards.Pop());
                    }
                }

                if (number == Players.Count + 1 && flag)
                {
                    if (Players.Count == 0)
                    {
                        IsDraw = true;
                    }
                    if (Players.Count == 1)
                    {
                        IsFool = true;
                    }
                    return;
                }
            }
        }