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