Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
 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
 }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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);
        }