public void SplitHand(PlayerHandControl sourceHandControl) { //take a card from the source hand Card cardToMoveToNewHand = sourceHandControl.TakeLastCard(); //create a new hand for the active player PlayerHand newHand = controller.AddHandToPlayer(controller.ActivePlayer, State.NotYetPlayed); newHand.State = State.NotYetPlayed; //add the card that was removed from the source to the new hand var newPlayerHandControl = new PlayerHandControl(newHand, controller, this); controller.GivePlayerACard(newHand, cardToMoveToNewHand); newPlayerHandControl.Visible = true; playerHandControlList.Add(newPlayerHandControl); layout.Controls.Add(newPlayerHandControl); controller.IncreaseBet(newHand, double.Parse(tbBet.Text)); newPlayerHandControl.DeactivateButtons(); controller.GivePlayerNextCardInShoe(controller.ActivePlayer.ActiveHand, true); controller.GivePlayerNextCardInShoe(newHand, true); }
private void btnBet_Click(object sender, EventArgs e) { Console.WriteLine("--------------------------------------"); btnBet.Enabled = false; if (controller.Shoe.UndealtCards.Count < 10) { controller.ShuffleAll(); } controller.StartNewHand(); dealerLayoutPanel.Controls.Clear(); dealerHandControl = new DealerHandControl(controller.Dealer.Hand, controller, this); controller.Dealer.Hand.onDealerBlackjack += controller_onGameEnd; controller.Dealer.Hand.onDealerBlackjack += Instance_OnShowAllCards; controller.Dealer.Hand.onDealerBust += controller_onGameEnd; controller.Dealer.Hand.onDealerBust += Instance_OnShowAllCards; dealerLayoutPanel.Controls.Add(dealerHandControl); foreach (var control in playerHandControlList) { control.EndGame(); } layout.Controls.Clear(); controller.IncreaseBet(controller.ActivePlayer.ActiveHand, double.Parse(tbBet.Text)); var playerHandControl = new PlayerHandControl(controller.ActivePlayer.ActiveHand, controller, this); playerHandControlList.Add(playerHandControl); layout.Controls.Add(playerHandControl); playerHandControl.btnDoubleDown.Enabled = true; playerHandControl.btnHit.Enabled = true; playerHandControl.btnStand.Enabled = true; controller.Deal(); // pnlAction.Visible = true; }