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); }
private static void ShowOneHand(Deck deck, ICardPrinter cardPrinter) { Hand hand = deck.TakeOneHand(); cardPrinter.Print(hand.ShowCard()); }
private static void Shuffle(Deck deck) { deck.Shuffle(); Console.WriteLine("Your deck is shuffled"); }
private static void PrintNumberOfCards(Deck deck) { Console.WriteLine("Deck has {0} cards", deck.NumberOfCards); }
public void A_hand_from_deck_should_contains_5_cards() { var deck = new Deck(); var hand = deck.TakeOneHand(); hand.ShowCard().Should().HaveCount(5); }
public void Cards_should_be_removed_from_deck_after_a_hand_is_taken() { var deck = new Deck(); deck.TakeOneHand(); deck.NumberOfCards.Should().Be(47); }
public void Deck_should_contains_correct_number_of_cards() { var deck = new Deck(); deck.NumberOfCards.Should().Be(52); }