public void TestManyPlayerWithManyWinners() { PokerGame pokerGame = new PokerGame(); string player1 = "Tester1"; string player1Cards = "10h 6d as 4s 9h"; //this is high card pokerGame.AddPlayer(player1, player1Cards); string player2 = "Tester2"; string player2Cards = "10s 6h ad 4c 9d"; //this is also high card but similar to 1 pokerGame.AddPlayer(player2, player2Cards); string player3 = "Tester3"; string player3Cards = "2c 4d 5h 3c 7s"; //this is also high card pokerGame.AddPlayer(player3, player3Cards); pokerGame.StartGame(); List <string> expectedWinner = new List <string>(); expectedWinner.Add(player1); expectedWinner.Add(player2); List <string> winnerListFromPokerClass = pokerGame.GetWinners(); CollectionAssert.AreEqual(winnerListFromPokerClass, expectedWinner); }
public void TestManyPlayersOneWinner() { PokerGame pokerGame = new PokerGame(); string player1 = "Tester1"; string player1Cards = "2h 6d as 4s 3h"; //this is high card only pokerGame.AddPlayer(player1, player1Cards); string player2 = "Tester2"; string player2Cards = "2s 2d 5d 4c 3d"; //this is one pair pokerGame.AddPlayer(player2, player2Cards); string player3 = "Tester3"; string player3Cards = "2c 3c 5h 5c 3s"; //this should win because two pair pokerGame.AddPlayer(player3, player3Cards); pokerGame.StartGame(); List <string> expectedWinner = new List <string>(); expectedWinner.Add(player3); List <string> winnerListFromPokerClass = pokerGame.GetWinners(); CollectionAssert.AreEqual(winnerListFromPokerClass, expectedWinner); }
static void Main(string[] args) { CardValidator cardValidator = new CardValidator(); PokerGame pokerGame = new PokerGame(); bool isTerminated = false; int currentNumberOfPlayers = 0; ShowIntroductions(); while (!isTerminated) { Console.Write("\nEnter the player name: "); string playerName = Console.ReadLine(); string playerCard = string.Empty; DeclarePlayerCard(playerName, ref playerCard); while (cardValidator.IsValid(playerCard, out string errorMessage) != true) { Console.WriteLine("Error: {0}\n", errorMessage); DeclarePlayerCard(playerName, ref playerCard); } pokerGame.AddPlayer(playerName, playerCard); currentNumberOfPlayers++; if (currentNumberOfPlayers > 1) { Console.WriteLine("\nPress ANY KEY to add more players or ESC to start\n"); if (Console.ReadKey(true).Key == ConsoleKey.Escape) { isTerminated = true; } } } pokerGame.StartGame(); Console.WriteLine("-------Results-------"); for (int i = 0; i < pokerGame.NumberOfPlayers; i++) { Console.WriteLine("{0}: {1} ({2})", pokerGame.GetPlayerName(i), pokerGame.GetCardCollection(i), pokerGame.GetPlayerHand(i)); } Console.WriteLine("\n-------Winner/s-------"); for (int i = 0; i < pokerGame.GetWinners().Count; i++) { Console.WriteLine(pokerGame.GetWinners()[i]); } Console.WriteLine("\nPress ANY KEY to exit"); Console.ReadLine(); }
private string GetWinningPlayersScore() // Collects information about winner(s) and converts into a string for easy parameter. { if (_game.GetWinners(_game.CurrentHand()).Count == 1) { if (Int32.TryParse(ConvertScoreToString(0), out int numericScore)) { if (numericScore > 10) { return(GiveNumericScoreName(numericScore)); } return(numericScore + " (Highest Card)"); } return(ConvertScoreToString(0)); } else if (_game.GetWinners(_game.CurrentHand()).Count == 2) { return(ConvertScoreToString(0)); } return(null); // TODO: error handling }
public void TestWinnerIfPlayerFolds() { // Arrange CreatePropperties(); // Round 1 Game.Call(); // Round 2 Game.Fold(); var expected = Game.Players[1].Id; // Act var actual = Game.GetWinners(Game.Hands[Game.CurrentHandNumber() - 1]); // Assert Assert.AreEqual(expected, actual[0].Id); }
public void TestPlayersHasMoreCardsThanRequired() { PokerGame pokerGame = new PokerGame(); string player1 = "Tester1"; string player1Cards = "2h 2c as 4s 3h ah ad"; //this is high card but should win pokerGame.AddPlayer(player1, player1Cards); string player2 = "Tester2"; string player2Cards = "2d 2s kh 4h 3d 5d 6d 7d"; //this is high card pokerGame.AddPlayer(player2, player2Cards); pokerGame.StartGame(); List <string> expectedWinner = new List <string>(); expectedWinner.Add(player1); List <string> winnerListFromPokerClass = pokerGame.GetWinners(); CollectionAssert.AreEqual(winnerListFromPokerClass, expectedWinner); }
public void TestBothPlayerWinSameHand() { PokerGame pokerGame = new PokerGame(); string player1 = "Tester1"; string player1Cards = "2h 6d as 4s 3h"; //this is high card pokerGame.AddPlayer(player1, player1Cards); string player2 = "Tester2"; string player2Cards = "2d 6c ah 4h 3d"; //also high card but both should win pokerGame.AddPlayer(player2, player2Cards); pokerGame.StartGame(); List <string> expectedWinner = new List <string>(); expectedWinner.Add(player1); expectedWinner.Add(player2); List <string> winnerListFromPokerClass = pokerGame.GetWinners(); CollectionAssert.AreEqual(winnerListFromPokerClass, expectedWinner); }
public void TestWinnerHighestCardOnTable() { // Arrange Player player1 = new Player(1, 100); Player player2 = new Player(2, 100); List <Player> players = new List <Player> { player1, player2 }; Hand hand = new Hand(players); Card tableCard1 = new Card(Suit.Diamonds, Rank.Jack); Card tableCard2 = new Card(Suit.Hearts, Rank.King); Card tableCard3 = new Card(Suit.Spades, (Rank)4); Card tableCard4 = new Card(Suit.Diamonds, (Rank)5); Card tableCard5 = new Card(Suit.Spades, (Rank)7); player1.Cards.Add(new Card(Suit.Clubs, Rank.Queen)); // HighestCard: Queen player1.Cards.Add(new Card(Suit.Spades, (Rank)2)); player1.Cards.Add(tableCard1); player1.Cards.Add(tableCard2); player1.Cards.Add(tableCard3); player1.Cards.Add(tableCard4); player1.Cards.Add(tableCard5); player2.Cards.Add(new Card(Suit.Clubs, (Rank)8)); // HighestCard: 10 player2.Cards.Add(new Card(Suit.Clubs, (Rank)10)); player2.Cards.Add(tableCard1); player2.Cards.Add(tableCard2); player2.Cards.Add(tableCard3); player2.Cards.Add(tableCard4); player2.Cards.Add(tableCard5); List <Player> expected = new List <Player> { player1 }; // Act List <Player> actual = Game.GetWinners(hand); // Assert Assert.AreEqual(expected[0].Id, actual[0].Id); Assert.AreEqual(expected.Count, actual.Count); }