public void Play() { _discardPile = new List<Card>(); // create a player _player = new Player(); // create a dealer _dealer = new Dealer(); // create some cards in a deck of cards _deck = new DeckOfCards(); _deck.Shuffle(); while (true) { List<Card> discards; discards = _player.ClearYourHand(); _discardPile.AddRange(discards); discards = _dealer.ClearYourHand(); _discardPile.AddRange(discards); // deal the cards Card cardToDeal; cardToDeal = GetTopCardFromDeck(); _player.PutInHand(cardToDeal); cardToDeal = GetTopCardFromDeck(); _dealer.PutInHand(cardToDeal); cardToDeal = GetTopCardFromDeck(); _player.PutInHand(cardToDeal); cardToDeal = GetTopCardFromDeck(); _dealer.PutInHand(cardToDeal); // print the state of the game for the user PrintTheGame(); // hit the player until they don't wanna be hit no more while (_player.HasNotGoneOver21() && _player.WantsAnotherCard()) { cardToDeal = GetTopCardFromDeck(); _player.PutInHand(cardToDeal); PrintTheGame(); } // stop if the player busts if (_player.HasGoneOver21()) { Console.WriteLine("You have lost, human."); Console.WriteLine("It is a sad day for your species."); } else { _dealer.ShowAllOfYourCards(); // hit the dealer until the computer is over 17 while (_dealer.HasNotGoneOver21() && _dealer.WantsAnotherCard()) { cardToDeal = GetTopCardFromDeck(); _dealer.PutInHand(cardToDeal); } PrintTheGame(); // figure out the winner if (_dealer.HasGoneOver21()) { Console.WriteLine("You win, this time, human."); } else if (_player.TotalOfHand() >= _dealer.TotalOfHand()) { Console.WriteLine("You win, this time, human."); } else { Console.WriteLine("You have lost, puny human."); Console.WriteLine("Your species will never win."); } } // see if the player wants to go another hand Console.WriteLine("Press any key but N and Enter to play another hand."); string input = Console.ReadLine().ToLower(); if (input == "n") { break; } } }