Beispiel #1
0
        private void PlayUntilBustOrStay(PlayerHand playerHand)
        {
            DealInitialCards(playerHand);
            var playerChoice = playerHand.ChooseHitOrStay();

            while (CanContinuePlay(playerHand, playerChoice))
            {
                ContinuePlay(playerHand);

                if (IsThereABust(playerHand))
                {
                    playerHand.Communicate($"{playerHand.GetName()} lost.");
                    playerHand.Communicate("It's a bust!");
                    break;
                }

                playerChoice = playerHand.ChooseHitOrStay();
            }
        }
Beispiel #2
0
        private void DealCheck()
        {
            int dealerTemp = 0, playerTemp = 0;

            DealerHand.ForEach(c => dealerTemp += c.Value);
            PlayerHand.ForEach(c => playerTemp += c.Value);

            if (dealerTemp == 21)
            {
                ShowFaceDown();
                dealerShown = dealerTemp;;
                playerShown = playerTemp;
                UpdateDealerShown();
                UpdatePlayerShown();

                if (dealerTemp == playerTemp)
                {
                    MessageBox.Show("No Winner", "Push");
                }
                else
                {
                    MessageBox.Show("Dealer Wins", "Blackjack");
                }
                gameOver = true;
            }
            else
            {
                dealerShown = DealerHand[0].Value;
                playerShown = playerTemp;

                UpdatePlayerShown();
                UpdateDealerShown();
                if (playerShown == 21)
                {
                    MessageBox.Show("Player Wins", "Blackjack"); AddWin(); gameOver = true;
                }
            }
        }
Beispiel #3
0
        private void DealHands()
        {
            PlayerHand.Add(DealCard());
            DisplayCard(playersCards, PlayerHand.Last());

            DealerHand.Add(DealCard());
            DisplayCard(dealersCards, DealerHand.Last());


            PlayerHand.Add(DealCard());
            DisplayCard(playersCards, PlayerHand.Last());

            DealerHand.Add(DealCard());
            Dispatcher.Invoke(() => dealersCards.Children.Add(new TextEdit()
            {
                Name = "FaceDown"
            }));
            DealCheck();

            if (!gameOver)
            {
                Dispatcher.Invoke(() => { btnHit.IsEnabled = true; btnStand.IsEnabled = true; });
            }
        }
Beispiel #4
0
        private void ContinuePlay(PlayerHand playerHand)
        {
            var nextCard = _deck.TakeOneCard();

            playerHand.DealCard(nextCard);
        }
Beispiel #5
0
 private bool CanContinuePlay(PlayerHand playerHand, string playerChoice)
 {
     return(playerChoice == "hit" && !IsThereABust(playerHand));
 }
Beispiel #6
0
 private bool IsThereABust(PlayerHand playerHand)
 {
     return(playerHand.IsScoreGreaterThan(21));
 }
Beispiel #7
0
 public void EmptyHand()
 {
     PlayerHand.Clear();
 }