private void button25_Click(object sender, EventArgs e) { handhighlights2 = new Hand(); handhighlights2 = HandCombination.getBestHand(new Hand(myHand2)); for (int i = 0; i < myHand2.Count(); i++) { for (int j = 0; j < handhighlights2.Count(); j++) { if (handhighlights2.getCard(j) == myHand2.getCard(i) && handhighlights2.getCard(j).getSuit() == myHand2.getCard(i).getSuit()) { myHand2.getCard(i).Highlight(); } } } int x = 0; for (int i = 0; i < myHand2.Count(); i++) { Bitmap bitmap = new Bitmap(myHand2.getCard(i).getImage()); Graphics g = Graphics.FromImage(b1); g.DrawImage(bitmap, 5 + x * 75, 5, 71, 96); x++; } pictureBox2.Image = b1; MainList.Items.Add(handhighlights2.ToString()); }
//timer to take care of showdown situations private void TimerShowdown_Tick(object sender, EventArgs e) { showdownCount++; if (showdownCount > pokerTable.getPot().getPlayersInPot().Count) { //unhighlights hands and evaluates hands to determine winner(s) for (int i = 0; i < pokerTable[pokerTable.getCurrentIndex()].getHand().Count(); i++) { pokerTable[pokerTable.getCurrentIndex()].getHand()[i].UnHighlight(); } DrawToScreen(); pokerTable.ShowDown(); lblBanner.Text = pokerTable.winnermessage; TimerShowdown.Stop(); TimerWait3Seconds.Start(); } else { //displays hands to the user for (int i = 0; i < pokerTable[pokerTable.getCurrentIndex()].getHand().Count(); i++) { pokerTable[pokerTable.getCurrentIndex()].getHand()[i].UnHighlight(); } int currentIndex = pokerTable.incrementIndexShowdown(pokerTable.getCurrentIndex()); pokerTable.setCurrentIndex(currentIndex); pokerTable[currentIndex].getHand()[0].FaceUp = true; pokerTable[currentIndex].getHand()[1].FaceUp = true; Hand bestHand = HandCombination.getBestHand(new Hand(pokerTable[currentIndex].getHand())); for (int i = 0; i < pokerTable[currentIndex].getHand().Count(); i++) { for (int j = 0; j < bestHand.Count(); j++) { if (bestHand.getCard(j) == pokerTable[currentIndex].getHand().getCard(i) && bestHand.getCard(j).getSuit() == pokerTable[currentIndex].getHand().getCard(i).getSuit()) { pokerTable[currentIndex].getHand().getCard(i).Highlight(); } } } lblBanner.Text = pokerTable[currentIndex].Name + " has: " + Environment.NewLine + bestHand.ToString(); DrawToScreen(); } }
//most important method in the game, controls the turns of the players private void TimerNextMove_Tick(object sender, EventArgs e) { timerCount++; //condition if everyone folds if (pokerTable.PlayerWon()) { panelBubble.Hide(); pokerTable.setCurrentIndex(pokerTable.incrementIndexShowdown(pokerTable.getCurrentIndex())); pokerTable[pokerTable.getCurrentIndex()].CollectMoney(pokerTable.getPot()); lblBanner.Text = pokerTable[pokerTable.getCurrentIndex()].Message; lblBanner.Show(); TimerNextMove.Stop(); TimerWait3Seconds.Start(); return; } //condition to increment player's turn if (pokerTable.beginNextTurn()) { pokerTable.setCurrentIndex(pokerTable.incrementIndex(pokerTable.getCurrentIndex())); lblBanner.Hide(); //condition to pay small/big blind if (timerCount == 1) { pokerTable.PaySmallBlind(); } else if (timerCount == 2) { pokerTable.PayBigBlind(); } //condition that the current player is not AI, show labels to player else if (pokerTable.getCurrentIndex() == 0) { initalizeButtons(); TimerNextMove.Stop(); return; } //condition for AI else { AIPlayer currentPlayer = (AIPlayer)pokerTable[pokerTable.getCurrentIndex()]; if (difficulty == (int)DIFFICULTY.HARD) { Hand holeCards = new Hand(); holeCards.Add(pokerTable[0].getHand()[0]); holeCards.Add(pokerTable[0].getHand()[1]); currentPlayer.CalculateHandValueHard(holeCards, new Deck(pokerTable.getDeck())); } currentPlayer.MakeADecision(pokerTable.getPot(), pokerTable.decrementIndex(pokerTable.getCurrentIndex())); pokerTable[pokerTable.getCurrentIndex()] = currentPlayer; //grey out form if the AI folds if (currentPlayer.IsFolded()) { panelList[pokerTable.getCurrentIndex()].BackgroundImage = Image.FromFile("inactivebutton.png"); } } updateMove(); if (timerCount > 2 && pokerTable.getCurrentIndex() != 0 && difficulty == 1) { timerCalculate.Start(); } } else { //deal community cards pokerTable.TurnCount = 0; lblBanner.Show(); panelBubble.Hide(); if (pokerTable[0].getHand().Count() == 2) { pokerTable.DealFlop(); lblBanner.Text = "Dealing the Flop"; toolTipHint.SetToolTip(panelPlayer, HandCombination.getBestHand(new Hand(pokerTable[0].getHand())).ToString()); } else if (pokerTable[0].getHand().Count() == 5) { pokerTable.DealTurn(); lblBanner.Text = "Dealing the Turn"; toolTipHint.SetToolTip(panelPlayer, HandCombination.getBestHand(new Hand(pokerTable[0].getHand())).ToString()); } else if (pokerTable[0].getHand().Count() == 6) { pokerTable.DealRiver(); lblBanner.Text = "Dealing the River"; toolTipHint.SetToolTip(panelPlayer, HandCombination.getBestHand(new Hand(pokerTable[0].getHand())).ToString()); } else if (pokerTable[0].getHand().Count() == 7) { //start timer for showdown lblBanner.Text = "Showdown"; TimerNextMove.Stop(); TimerShowdown.Start(); return; } //reset agressor the dealer int dealerPosition = pokerTable.getDealerPosition(); pokerTable.setCurrentIndex(pokerTable.getDealerPosition()); pokerTable.getPot().AgressorIndex = pokerTable.getDealerPosition(); DrawToScreen(); } }