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