Esempio n. 1
0
        private static void GiveMeTheBestHand(Deck deck, ICardPrinter cardPrinter)
        {
            BigInteger counter = 0;
            Hand currentHand;

            deck.Reset();
            deck.Shuffle();

            do
            {
                counter++;
                if (deck.NumberOfCards < 5)
                {
                    deck.Reset();
                    deck.Shuffle();
                }
                
                currentHand = deck.TakeOneHand();
                //Console.WriteLine(deck.NumberOfCards);
                if (counter%1000 == 0)
                    Console.WriteLine(counter);
            } while (!CheckIfIsTargetHand(currentHand));

            Console.WriteLine("I needed {0} times", counter);
            cardPrinter.Print(currentHand.ShowCard());
        }
 public void Should_be_able_to_reset_deck()
 {
     var deck = new Deck();
     deck.TakeOneHand();
     deck.Reset();
     deck.NumberOfCards.Should().Be(52);
 }
Esempio n. 3
0
        private static void Main(string[] args)
        {
            var deck = new Deck();
            bool isStillRunning = true;
            ICardPrinter cardPrinter = new ConsoleCardPrinter();

            do
            {
                switch (ShowMenu())
                {
                    case 1:
                        {
                            PrintNumberOfCards(deck);
                            break;
                        }
                    case 2:
                        {
                            Shuffle(deck);
                            break;
                        }
                    case 3:
                        {
                            ShowOneHand(deck, cardPrinter);
                            break;
                        }
                    case 4:
                        {
                            deck.Reset();
                            break;
                        }
                    case 5:
                        {
                            GiveMeTheBestHand(deck, cardPrinter);
                            break;
                        }
                    case 6:
                        {
                            isStillRunning = CheckIfTheUserWantsToCloseTheApplication();
                            break;
                        }
                }

            } while (isStillRunning);
        }