/// <summary> /// Initialize Deck, deal the player and dealer hands, and display them. /// </summary> static void InitializeHands() { deck.Initialize(); player.Hand = deck.DealHand(); Dealer.HiddenCards = deck.DealHand(); Dealer.RevealedCards = new List <Card>(); // If hand contains two aces, make one Hard. if (player.Hand[0].Face == Face.Ace && player.Hand[1].Face == Face.Ace) { player.Hand[1].Value = 1; } if (Dealer.HiddenCards[0].Face == Face.Ace && Dealer.HiddenCards[1].Face == Face.Ace) { Dealer.HiddenCards[1].Value = 1; } Dealer.RevealCard(); player.WriteHand(); Dealer.WriteHand(); }
/// <summary> /// Handles everything for the round. /// </summary> static void StartRound() { Console.Clear(); if (!TakeBet()) { EndRound(RoundResult.INVALID_BET); return; } Console.Clear(); InitializeHands(); TakeActions(); Dealer.RevealCard(); Console.Clear(); player.WriteHand(); Dealer.WriteHand(); player.HandsCompleted++; if (player.Hand.Count == 0) { EndRound(RoundResult.SURRENDER); return; } else if (player.GetHandValue() > 21) { EndRound(RoundResult.PLAYER_BUST); return; } while (Dealer.GetHandValue() <= 16) { Thread.Sleep(1000); Dealer.RevealedCards.Add(deck.DrawCard()); Console.Clear(); player.WriteHand(); Dealer.WriteHand(); } if (player.GetHandValue() > Dealer.GetHandValue()) { player.Wins++; if (Casino.IsHandBlackjack(player.Hand)) { EndRound(RoundResult.PLAYER_BLACKJACK); } else { EndRound(RoundResult.PLAYER_WIN); } } else if (Dealer.GetHandValue() > 21) { player.Wins++; EndRound(RoundResult.PLAYER_WIN); } else if (Dealer.GetHandValue() > player.GetHandValue()) { EndRound(RoundResult.DEALER_WIN); } else { EndRound(RoundResult.PUSH); } }