public void PassToDealer() { AdjustGameState(GameState.DealerPlays); DealerHand.TurnAllCardsFaceUp(); AdjustGameState(); LetDealerFinalize(); }
public void NextGame() { GameMode = Results.Bet; PlayerHand.Clear(); DealerHand.Clear(); PlayerScore = 0; DealerScore = 0; _playerAces = 0; _dealerAces = 0; Bet = 0; PullPlayerCard(); PullDealerCard(); PullDealerCard(); //Check if player has blackjack if (PlayerScore == 21) { Blackjack(); } //Check if insurance applies if (DealerScore == 11) { InsuranceBet(); } }
public void Stay() { round_replay.PushAction(0, Player.Hand.GetHighValue(), DealerHand.Cards[1].NumValue); while (DealerShouldHit()) { DealerHand.AddCard(Deck.DrawCard()); } if (DealerHand.HasBlackJack() && !Player.Hand.HasBlackJack()) { EndRound(false); } else if (DealerHand.GetHighValue() > 21) { EndRound(true); } else if (Player.Hand.GetHighValue() >= DealerHand.GetHighValue()) { EndRound(true); } else { EndRound(false); } }
private void DealHands() { if (CardsInDeck < 10) { DealHandsButtonVisible = false; ShuffleDeckButtonVisible = true; MessageBoard = "There are not enough cards\n" + "in the deck to play the hand."; } else { PlayerHand.clearHand(); DealerHand.clearHand(); PlayerHand.AddCard(MyDeck.pick()); PlayerHand.AddCard(MyDeck.pick()); DealerHand.AddCard(MyDeck.pick()); DealerHand.AddCard(MyDeck.pick()); HitButtonVisible = true; StayButtonVisible = true; ShuffleDeckButtonVisible = false; DealHandsButtonVisible = false; CardsInDeck = MyDeck.CardsLeft(); DealerHandValue = 0; PlayerHandValue = 0; MessageBoard = ""; } }
/// <summary>Action taking place on the Dealer's turn.</summary> private void DealerAction() { bool keepGoing = true; while (keepGoing) { if (DealerHand.ActualValue == 21) { keepGoing = false; } else if (DealerHand.ActualValue >= 17) { if (DealerHand.ActualValue > 21 && DealerHand.HasAceEleven()) { ConvertAce(DealerHand); } else { keepGoing = false; } } else { DealCard(DealerHand); } } }
public bool DealerShouldHit() //Dealer stays on all 17's { if (DealerHand.GetHighValue() < 17) { return(true); } return(false); }
public void PlayRound() { DiscardHands(); DealerHand.SetHand(DealHand()); Player.DealHand(DealHand()); round_replay.ClearActions(); CanAct = true; }
public void PassToDealer() { AdjustGameState(); DealerHand.TurnAllCardsFaceUp(); AddCardToHand(DealerHand, true); AdjustGameState(); }
//private int roundNumber = 0; //internal tracking public BlackJack() { cardDeck = new CardDeck(); playerHand = new PlayerHand(); dealerHand = new DealerHand(); cardDeck.shuffle(); //Play(); }
/// <summary> /// Dealer Play /// </summary> /// <returns>The result </returns> public static List <Result> DealerPlay() { List <Result> result = new List <Result>(); bool drawCard = true; // Check if player gone Bust or not if (PlayerHands[0].Score > 21) { drawCard = false; } if (PlayerHands[0].HasSurrendered) // player surrender { result.Add(Result.Surrendered); // player get half the bet PlayerFunds += PlayerHands[0].Bet / 2; } // Draw Card for Dealer if (!PlayerHands[0].HasSurrendered && drawCard) { while (DealerHand.Score < 17) { DealerHand.AddCard(_deck.DealOneCard()); } } // Check Player Result for (int x = 0; x < PlayerHands.Count && !PlayerHands[0].HasSurrendered; x++) { if (DealerHand.Score > 21 || (PlayerHands[x].Score > DealerHand.Score && PlayerHands[x].Score <= 21))// player win { result.Add(Result.Won); // player gain twice their bet PlayerFunds += PlayerHands[x].Bet * 2; } else if (PlayerHands[x].Score > 21) // player bust { result.Add(Result.Bust); } else if (PlayerHands[x].Score == DealerHand.Score) // player Push { result.Add(Result.Push); // player get their bet back PlayerFunds += PlayerHands[x].Bet; } else if (PlayerHands[x].Score < DealerHand.Score) // player lost { result.Add(Result.Lost); } } return(result); }
public List <int> GetState() { this.PlayerHand.Sort(); List <int> State = new List <int>(); State.Add(DealerHand.First().value); //only first card State.AddRange(PlayerHand.ConvertAll(card => card.value)); return(State); }
public void NewGame() { EndVisible = false; _hold = false; DealerHand.Clear(); PlayerHand.Clear(); DealerHand.Add(PullCard()); PlayerHand.Add(PullCard()); UpdateScores(); }
public void InitMyData() { shoe = new Shoe(); dealerHand = new DealerHand(); myHand = new MyHand(); advStrategy = new AdvStrategy(); this.Location = new Point(10, 100); UpdateBoxCards(); }
public void BlackJackCheck() { if (Player.Hand.HasBlackJack()) { EndRound(true); } if (DealerHand.HasBlackJack()) { EndRound(false); } }
public Dealer() { Console.WriteLine("blabla"); _CardDeck = new CardDeck(); Hand = new DealerHand() { CardsInHand = new List <Card>() { Hit() } }; }
public void DealCard(Hand hand, bool faceup) { var card = cardDeck.Draw(); // Draw a card from the deck card.FaceUp = faceup; // Face it up or down if (hand == DealerHand && DealerHand.HandTotal() >= 17) { return; } hand.Cards.Add(card); // Give it the player's hand }
// dealer hit public List <Card> Hit(Card card) { DealerHand.Add(card); if (DealerHand.Count == 1) { dealerNotify(card, true); } else { dealerNotify(card, false); } return(DealerHand); }
public void Stand() { // stop adding cards // reveal dealer's upside down card // dealer starts to hit until 17 // dealer hand only hits if the player hasn't busted or blackjacked // dealer stands when hand val >= 17 hitBut.interactable = false; standBut.interactable = false; dh = GameObject.Find("Dealer hand").GetComponent <DealerHand>(); checkForDealerHand = true; }
private static bool PlayGame() { Deck MainDeck = Extensions.MakeNew(); List <Hand> PlayerHands = new List <Hand>(); int playerHandIndex = 0; Hand DealerHand, currentPlayerHand = null; bool playing = true; int gameState = 0; //0 for running, 1 for player wins, 2 for tie, 3 for loss List <ConsoleKey> validInput = new List <ConsoleKey>() { ConsoleKey.H, ConsoleKey.D, ConsoleKey.S, ConsoleKey.Spacebar, ConsoleKey.Escape }; List <Action> postInput = new List <Action>() { () => Hit(ref currentPlayerHand, ref MainDeck), () => DoubleDown(ref currentPlayerHand, ref MainDeck), () => Split(ref currentPlayerHand), () => Stand(ref currentPlayerHand), () => Abort() }; MainDeck.Shuffle(); PlayerHands.Add(DealHand(MainDeck)); MainDeck.cards.RemoveRange(0, 2); DealerHand = DealHand(MainDeck); MainDeck.cards.RemoveRange(0, 2); if (DealerHand.Score() == 21) //handle dealer blackjack { if (PlayerHands[0].Score() == 21) { gameState = 2; } else { gameState = 3; } } while (playing) { int inputIndex = GetPlayerInput(validInput); currentPlayerHand = PlayerHands[playerHandIndex]; postInput[inputIndex](); PlayerHands[inputIndex] = currentPlayerHand; } return(true); }
private void NewGame() { MyDeck.reset(); CardsInDeck = MyDeck.CardsLeft(); PlayerHand.clearHand(); DealerHand.clearHand(); ShuffleDeckButtonVisible = true; DealHandsButtonVisible = true; DealerHandValue = 0; PlayerHandValue = 0; PlayerScore = 0; DealerScore = 0; MessageBoard = ""; }
private void DisplayDealerHand() { if (MainHandOver && SplitHandOver) { DealerHand.ClearHidden(); } while (dealerHandContainer.GetChildren().Count > 0) { dealerHandContainer.RemoveChild(dealerHandContainer.GetChild(0)); } foreach (Card card in DealerHand.CardList) { dealerHandContainer.AddChild(card); } LblDealerTotal.Text = DealerHand.TotalValue > 0 ? DealerHand.Value : ""; }
private void Stay() { PlayerHandValue = PlayerHand.handValue(); DealerHandValue = DealerHand.handValue(); bool dealerHas5CardsWithValueSmallerThan21 = false; int count = DealerHand.CardsInHand.Count; while (!dealerHas5CardsWithValueSmallerThan21 && DealerHandValue < 18) { DealerHand.AddCard(MyDeck.pick()); DealerHandValue = DealerHand.handValue(); count++; if (count == 5 && DealerHandValue <= 21) { dealerHas5CardsWithValueSmallerThan21 = true; } } string winner = (dealerHas5CardsWithValueSmallerThan21 || (DealerHandValue >= PlayerHandValue && DealerHandValue <= 21)) ? "Dealer wins!" : "Player wins!"; if (DealerHandValue == PlayerHandValue && !dealerHas5CardsWithValueSmallerThan21) { winner = "It's a draw."; } MessageBoard = $"{winner}"; if (winner == "Dealer wins!") { DealerScore++; } if (winner == "Player wins!") { PlayerScore++; } HitButtonVisible = false; StayButtonVisible = false; ShuffleDeckButtonVisible = true; DealHandsButtonVisible = true; CardsInDeck = MyDeck.CardsLeft(); }
public string Stand() { int userTotal = UserHand.HandTotal(); int dealerTotal = DealerHand.HandTotal(); if (userTotal <= 21) { if (Math.Abs(21 - userTotal) < Math.Abs(21 - dealerTotal)) { return("user"); } } if (userTotal <= 21 && userTotal == dealerTotal) { return("draw"); } return("dealer"); }
/// <summary> /// Dealer hits when player holds /// </summary> private void DealerHit() { while (DealerScore <= PlayerScore && DealerScore < 21) { var task = Task.Run(() => { Thread.Sleep(1000); }); task.ConfigureAwait(true) .GetAwaiter() .OnCompleted(() => { DealerHand.Add(PullCard()); UpdateScores(); }); } DeclareWinner(); }
private void Dealer17() { if (!DealerHand.Where(dc => dc.Value == 11).Any()) { return; } var c = DealCard(); DealerHand.Add(c); DisplayCard(dealersCards, c); dealerShown += c.Value; if (dealerShown > 21) { DealerHand.Where(dc => dc.Value == 11).First().Value = 1; dealerShown -= 10; UpdateDealerShown(); Thread.Sleep(1000); } }
void DealersTurn() { ShowFaceDown(); Thread.Sleep(1500); if (dealerShown == 17) { Dealer17(); } while (dealerShown < 17) { var c = DealCard(); DealerHand.Add(c); DisplayCard(dealersCards, c); dealerShown += c.Value; if (dealerShown == 17) { Dealer17(); } UpdateDealerShown(); Thread.Sleep(1000); } if (dealerShown > 21) { MessageBox.Show("Dealer Bust", "Player Wins"); AddWin(); gameOver = true; return; } if (dealerShown <= 21 && playerShown < dealerShown) { MessageBox.Show("Dealer Wins"); gameOver = true; return; } if (dealerShown == playerShown) { MessageBox.Show("No Winner", "Push"); gameOver = true; return; } if (playerShown <= 21 && playerShown > dealerShown) { MessageBox.Show("Player Wins"); AddWin(); gameOver = true; return; } }
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; } } }
public DealerHandControl(DealerHand hand, GameController controller, BlackJackForm form) : base(hand, controller, form) { this.Hand = hand; controller.onDealerCardReceived += dealer_onCardReceived; lblOutcome.Text = string.Empty; lblOutcome.Visible = false; btnDoubleDown.Visible = false; btnSplit.Visible = false; btnStand.Visible = false; btnHit.Visible = false; hand.onDealerBust += dealer_onBust; hand.onDealerBlackjack += dealer_onBlackjack; hand.onDealerWinHand += hand_onWinHand; hand.onDealerLoseHand += hand_onLoseHand; hand.onPushHand += hand_onPushHand; }
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; }); } }
public void StartNewGame() { foreach (var player in Players) { player.StartNewGame(); } DealerHand = new DealerHand(); }
/// <summary> /// Returns a random card and places it in the dealer's hand /// </summary> public void PullDealerCard() { Card tempCard; int randNum; int newValue = 0; Random random = new Random(); if (_deck.Count == 0) { GameMode = Results.Shuffle; Shuffle(); } else { randNum = random.Next(0, _deck.Count()); tempCard = _deck[randNum]; _deck.Remove(_deck[randNum]); DealerHand.Add(tempCard); //Update dealer score if (tempCard.Rank == 1) { _dealerAces++; newValue += 11; } else if (tempCard.Rank < 11) { newValue += tempCard.Rank; } else if (tempCard.Rank >= 11) { newValue += 10; } //Hold the value of the first card a secret if (DealerHand.Count == 1) { _hiddenDealerCard = +newValue; } else { DealerScore += newValue; } //Changes Aces from 11 to 1 if hand is over 21 if (_dealerAces > 0) { int count = 0; while (DealerScore > 21 && count < _dealerAces) { DealerScore -= 10; count++; _dealerAces--; } } } }
public BlackjackTable() { DealerHand = new DealerHand(); Shoe = new Shoe(6); }