private void Bust(PlayerHand hand) { hand.Lose(); Dealer.Hand.Win(); Dealer.Sweep(DiscardTray, hand); Thread.Sleep(2000); Draw(); if (!HasActivePlayers) { Draw(); Thread.Sleep(2000); Dealer.Sweep(DiscardTray, Dealer.Hand); //sweep own hand Dealer.Reset(); Draw(); Thread.Sleep(2000); } }
private void DoubleDown(PlayerHand hand) { var doubleBet = Math.Min(hand.Wager, hand.Player.BettableChips); Console.WriteLine($"Doubling down for ${doubleBet}"); hand.Bet(doubleBet); Thread.Sleep(2000); Dealer.Deal(Shoe, hand); Draw(); if (hand.IsBusted) { Bust(hand); } else { hand.Double(); Draw(); } }
private void PlayHand(PlayerHand hand) { if (hand.Player.ActiveHands.Count > 1) { ShowCurrentHand(hand, hand.Player); } var action = Action.None; if (hand.CanSplit && hand.Player.CanSplit && AskSplit(hand.Player)) { action = Action.Split; } else { action = PlayerFirst(hand.Player); } Draw(); if (action == Action.Hit) { PlayHandUntilDone(hand); } else if (action == Action.Double) { DoubleDown(hand); } else if (action == Action.Split) { Split(hand); } else if (action == Action.Stand) { hand.Stand(); Draw(); } }
public void Reset() { Hand = new PlayerHand(this); }
private void Hit(PlayerHand hand) { Dealer.Deal(Shoe, hand); Draw(); }
private void ShowCurrentHand(PlayerHand hand, Player player) { Console.WriteLine($"\nCurrent hand for {player.Name}"); hand.Draw(); Console.WriteLine(); }