Пример #1
0
        public static void GetWinnerByHighestCard(Game game)
        {
            int         p1HandValue = 0;
            int         p2HandValue = 0;
            List <Card> p1Cards     = game.Player1.HandPlayed.Cards;
            List <Card> p2Cards     = game.Player2.HandPlayed.Cards;

            p1HandValue = CardUtilities.GetTotalHandValue(p1Cards);
            p2HandValue = CardUtilities.GetTotalHandValue(p2Cards);

            if (p1HandValue > p2HandValue)
            {
                game.Player1.IsWinner = true;
            }
            else if (p2HandValue > p1HandValue)
            {
                game.Player2.IsWinner = true;
            }
            else
            {
                Player winner = FindPlayerWithHighestCard(game.Player1, game.Player2);
                if (winner == game.Player1)
                {
                    game.Player1.IsWinner = true;
                }
                else
                {
                    game.Player2.IsWinner = true;
                }
            }
        }
Пример #2
0
        private bool IsRoyalFlush(List <Card> cards, out List <Card> returnCards)
        {
            bool result = false;

            // get sequence of 5 consecutive cards if it exists
            returnCards = CardUtilities.GetConsecutiveValues(cards);
            if (returnCards.Count == 5 && CardUtilities.GetTotalHandValue(returnCards) == 60)
            {
                var suits = returnCards.Select(x => x.Suit).Distinct().ToArray();
                if (suits.Length == 1)
                {
                    result = true;
                }
            }


            return(result);
        }