Ejemplo n.º 1
0
        public static TexasGameResult CompareHandCards(TexasHoldEmPlayer blackPlayer, TexasHoldEmPlayer whitePlayer)
        {
            var texasGameResult = new TexasGameResult();

            var blackPlayerHandCardLevel = blackPlayer.HandCards.GetHandCardsLevel();
            var whitePlayerHandCardLevel = whitePlayer.HandCards.GetHandCardsLevel();

            var compareResult = blackPlayerHandCardLevel.CompareTo(whitePlayerHandCardLevel);

            if (compareResult > 0)
            {
                texasGameResult.WinnerName = blackPlayer.Name;
                texasGameResult.WinLevel   = blackPlayerHandCardLevel.Name;
            }
            else if (compareResult < 0)
            {
                texasGameResult.WinnerName = whitePlayer.Name;
                texasGameResult.WinLevel   = whitePlayerHandCardLevel.Name;
            }
            else
            {
                texasGameResult = blackPlayerHandCardLevel.GetSameLevelCompareResult(blackPlayer, whitePlayer);
            }

            return(texasGameResult);
        }
        public TexasGameResult GetCompareResult(
            TexasHoldEmPlayer blackPlayer,
            TexasHoldEmPlayer whitePlayer)
        {
            var texasGameResult = new TexasGameResult {
                WinLevel = new HighCardLevel().Name
            };


            var blackPlayerHandCards = blackPlayer.HandCards.Cards;
            var whitePlayerHandCards = whitePlayer.HandCards.Cards;

            var compareResults = blackPlayerHandCards.Zip(whitePlayerHandCards, (black, white) =>
                                                          black.CompareTo(white)).ToList();

            var blackLargeNumberIndex = compareResults.LastIndexOf(1);
            var whiteLargeNumberIndex = compareResults.LastIndexOf(-1);

            if (blackLargeNumberIndex > whiteLargeNumberIndex)
            {
                texasGameResult.WinnerName = blackPlayer.Name;
                texasGameResult.WinCard    = blackPlayerHandCards.ElementAtOrDefault(blackLargeNumberIndex)?.ToCardValueString();
            }

            if (blackLargeNumberIndex < whiteLargeNumberIndex)
            {
                texasGameResult.WinnerName = whitePlayer.Name;
                texasGameResult.WinCard    = whitePlayerHandCards.ElementAtOrDefault(whiteLargeNumberIndex)?.ToCardValueString();
            }

            return(texasGameResult);
        }
Ejemplo n.º 3
0
 public void ReturnCompareResultGivenTwoReadyPlayersInSameLevelFullHouseCondition(
     TexasHoldEmPlayer blackPlayer,
     TexasHoldEmPlayer whitePlayer,
     TexasGameResult expectedGameResult)
 {
     GetCompareResult(blackPlayer, whitePlayer, expectedGameResult);
 }
        public TexasGameResult GetCompareResult(
            TexasHoldEmPlayer blackPlayer,
            TexasHoldEmPlayer whitePlayer)
        {
            var texasGameResult = new TexasGameResult {
                WinLevel = new HighCardLevel().Name
            };

            const int middleValueIndex = 2;

            var blackPlayerMiddleCard = blackPlayer.HandCards.Cards.ElementAtOrDefault(middleValueIndex);
            var whitePlayerMiddleCard = whitePlayer.HandCards.Cards.ElementAtOrDefault(middleValueIndex);

            if (blackPlayerMiddleCard != null && whitePlayerMiddleCard != null)
            {
                var compareResult = blackPlayerMiddleCard.CompareTo(whitePlayerMiddleCard);
                if (compareResult > 0)
                {
                    texasGameResult.WinnerName = blackPlayer.Name;
                    texasGameResult.WinCard    = blackPlayerMiddleCard.ToCardValueString();
                }
                else
                {
                    texasGameResult.WinnerName = whitePlayer.Name;
                    texasGameResult.WinCard    = whitePlayerMiddleCard.ToCardValueString();
                }
            }

            return(texasGameResult);
        }
Ejemplo n.º 5
0
        private static void GetCompareResult(TexasHoldEmPlayer blackPlayer, TexasHoldEmPlayer whitePlayer,
                                             TexasGameResult expectedGameResult)
        {
            var compareResult = TexasGameComparer.CompareHandCards(blackPlayer, whitePlayer);

            Assert.Equal(expectedGameResult.WinLevel, compareResult.WinLevel);
            Assert.Equal(expectedGameResult.WinCard, compareResult.WinCard);
            Assert.Equal(expectedGameResult.WinnerName, compareResult.WinnerName);
        }
Ejemplo n.º 6
0
        public static void GetConsoleOutput(TexasGameResult texasGameResult)
        {
            const string commonPartialWinString = " wins - ";

            const string commonTieString = "Tie";

            if (string.IsNullOrEmpty(texasGameResult.WinnerName))
            {
                Console.WriteLine(commonTieString);
                return;
            }

            var commonWinString = texasGameResult.WinnerName + commonPartialWinString + texasGameResult.WinLevel;

            if (string.IsNullOrEmpty(texasGameResult.WinCard))
            {
                Console.WriteLine(commonWinString);
            }
            else
            {
                Console.WriteLine(commonWinString + ": " + texasGameResult.WinCard);
            }
        }