public void Should_Have_Player1_Win_If_His_Hand_Is_Better() { var handP1 = new List <string> { "3C", "3H", "3D", "AC", "DC" }; // 3 of a kind var handP2 = new List <string> { "4S", "4H", "AS", "QC", "JS" }; // Pair _rankService.GetRankFromHand(handP1).Returns(new Rank(4, "3C")); _rankService.GetRankFromHand(handP2).Returns(new Rank(2, "4S")); var bestHand = _handRankerService.RankHands(handP1, handP2); Check.That(bestHand).IsEqualTo(1); }
public void Rank() { var gameOver = false; while (!gameOver) { var handP1 = new List <string>(); var handP2 = new List <string>(); var deck = _deckService.InitDeck(); while (handP1.Count != 5 && handP2.Count != 5) { _deckService.DrawCard(handP1, deck); _deckService.DrawCard(handP2, deck); } var rankHandP1 = _handRankerService.RankHand(handP1); var rankHandP2 = _handRankerService.RankHand(handP2); _handPrinterService.PrintHand(1, handP1, rankHandP1); _handPrinterService.PrintHand(2, handP2, rankHandP2); var winner = _handRankerService.RankHands(handP1, handP2); Console.WriteLine(winner != 0 ? $"Player {winner} won this round !" : "It's a tie !"); Console.WriteLine("Play another hand ? Or press 'q' to quit..."); if (Console.ReadKey().KeyChar.Equals('q')) { gameOver = true; } Console.Clear(); } }