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