Ejemplo n.º 1
0
        public void Play()
        {
            var deck = new ShuffledDeck();
            var table = new Table {Cards = deck.GetNext(12)};
            Hands = 1;

            while (true)
            {
                IList<Card> set = FindSet(table);

                if (set == null) break; // Game over, no sets found
                Console.WriteLine(String.Format("Match found: {{{0} {1} {2}}}", set[0], set[1], set[2]));

                if (!ReplaceSetWithNewCards(deck, table, set)) break; // Game over, no more cards

                Hands++;
            }

            Console.WriteLine(String.Format("Game Over: {0} hands played.", Hands));
            Console.WriteLine(Hands < 24 ? "No more matches." : "No more cards.");
            Console.WriteLine("What's left on the Table?");
            Console.WriteLine(String.Join(",", table.Cards.Take(4)));
            Console.WriteLine(String.Join(",", table.Cards.Skip(4).Take(4)));
            Console.WriteLine(String.Join(",", table.Cards.Skip(8).Take(4)));
            Console.WriteLine();
        }
Ejemplo n.º 2
0
        public void CanBuildShuffledDeck()
        {
            var deck = new Deck();
            String x = String.Join<Card>(",", deck.Cards);

            var shuffledDeck = new ShuffledDeck();
            String y = String.Join<Card>(",", shuffledDeck.Cards);

            var deck2 = new Deck();
            String z = String.Join<Card>(",", deck2.Cards);

            Assert.AreNotEqual(x, y);
            Assert.AreEqual(x, z);
        }