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); }
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); }
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); }
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); } }