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