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 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 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 ActionResult <TexasGameResult> GetGameResult(GameDataModel gameData) { var player1 = new TexasHoldEmPlayer(gameData.PlayerOneName); var player2 = new TexasHoldEmPlayer(gameData.PlayerTwoName); player1.HandCards = new HandCards(gameData.PlayerOneCards); player2.HandCards = new HandCards(gameData.PlayerTwoCards); return(TexasGameComparer.CompareHandCards(player1, player2)); }
public static void TexasGameRun() { // Initial Player and their hand cards var blackPlayer = new TexasHoldEmPlayer("Black"); Console.WriteLine($"Please enter {blackPlayer.Name} player's cards: "); blackPlayer.HandCards = new HandCards(Console.ReadLine()); var whitePlayer = new TexasHoldEmPlayer("White"); Console.WriteLine($"Please enter {whitePlayer.Name} player's cards: "); whitePlayer.HandCards = new HandCards(Console.ReadLine()); // Compare cards var texasGameResult = TexasGameComparer.CompareHandCards(blackPlayer, whitePlayer); TexasGameResultOutputter.GetConsoleOutput(texasGameResult); }
public override TexasGameResult GetSameLevelCompareResult(TexasHoldEmPlayer blackPlayer, TexasHoldEmPlayer whitePlayer) { return(new HighCardConditionComparer().GetCompareResult(blackPlayer, whitePlayer)); }
public abstract TexasGameResult GetSameLevelCompareResult(TexasHoldEmPlayer blackPlayer, TexasHoldEmPlayer whitePlayer);