Пример #1
0
        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);
            }
        }
Пример #2
0
        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();
            }
        }
Пример #3
0
        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();
            }
        }
Пример #4
0
 public void Reset()
 {
     Hand = new PlayerHand(this);
 }
Пример #5
0
 private void Hit(PlayerHand hand)
 {
     Dealer.Deal(Shoe, hand);
     Draw();
 }
Пример #6
0
 private void ShowCurrentHand(PlayerHand hand, Player player)
 {
     Console.WriteLine($"\nCurrent hand for {player.Name}");
     hand.Draw();
     Console.WriteLine();
 }