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(); } }
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; } } }
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; }); } }
private void ContinuePlay(PlayerHand playerHand) { var nextCard = _deck.TakeOneCard(); playerHand.DealCard(nextCard); }
private bool CanContinuePlay(PlayerHand playerHand, string playerChoice) { return(playerChoice == "hit" && !IsThereABust(playerHand)); }
private bool IsThereABust(PlayerHand playerHand) { return(playerHand.IsScoreGreaterThan(21)); }
public void EmptyHand() { PlayerHand.Clear(); }