static void Main(string[] args) { var dT = new Deck(); var dealer = new DealerMethods(); var feelingLucky = true; while (feelingLucky) { var deck = dT.GenerateDeck(); deck = dT.ShuffleDeck(deck); var playerTotal = 0; var dealerHand = new List <Card>(); var playerHand = new List <Card>(); dealerHand = dealer.DealHand(deck, dealerHand); playerHand = dealer.DealHand(deck, playerHand); Console.WriteLine("***** Player drew *******"); Console.WriteLine(); Console.WriteLine(playerHand[0].DisplayCard()); Console.WriteLine(playerHand[1].DisplayCard()); Console.WriteLine(); Console.WriteLine("*************************"); Console.WriteLine(); Console.WriteLine("*** Dealer is showing ***"); Console.WriteLine(); Console.WriteLine(dealerHand[0].DisplayCard()); Console.WriteLine(); Console.WriteLine("*************************"); playerTotal = playerHand.Sum(c => c.Value); if (playerTotal == 21) { Console.WriteLine($"Black Jack! Player wins!"); } else { playerTotal = dealer.PlayerHit(deck, playerHand, playerTotal); switch (playerTotal) { case var expression when playerTotal > 21: Console.WriteLine($"Bust! Player looses!"); break; default: var dealerTotal = dealer.DealerReveal(dealerHand); dealerTotal = dealer.DealerHit(dealerHand, deck, dealerTotal); dealer.CheckWinner(dealerTotal, playerTotal); break; } } Console.WriteLine("Do you want to play again? (Y)/(N)"); var letItRide = Console.ReadLine().ToLower(); if (letItRide == "n") { Console.WriteLine("Thanks for playing!"); feelingLucky = false; } else { Console.WriteLine("Let it ride!"); } } }