void PokerDriver::runBetting(int bettingCycle) { int bet, callCounter = 0, minBet; while (unfoldedPlayers() > 1) { Player *player = m_Players.front(); minBet = minimumBet(player); if (player->folded()) { callCounter++; } else { bet = player->bet(minBet, GAME_DISPLAY); cout << "Bet_SUCCESS" << endl; callCounter++; if (bet != Player::FOLD) { m_PotMoney += bet; if (bet > minBet) { callCounter = 1; } } } if (callCounter >= unfoldedPlayers() || allPlayersAllIn()) break; rotatePlayers(); } }
int betPlayer(P_PLAYER player) { int minimum = minimumBet(player); int maximum = maximumBet(player); int bet; char input[100]; //int bet = enterBetPlayer(player, minimum); createBetScreen(minimum,maximum); //wait for valid input int validInput = 0; while (!validInput) { fgets (input, 100, stdin); if (isdigit(input[0])) { bet = atoi(input); if (bet >= minimum && bet <= maximum) { validInput = 1; } else if (bet < minimum && bet > maximum) { validInput = 1; player->allIn = 1; } else { wrongInputScreen(); } } else if (input[0] == 'F' || input[0] == 'f') { validInput = 1; printf("Fold input entered \n"); bet = -1; } else { printf("Wrong input\n"); wrongInputScreen(); } } //getchar(); //find out if raised or fold if (bet == minimum) bet = 0; else if (bet > minimum) bet = bet - minimum; processMoneyBet(player, bet, minimum); printf("BET: %d\n", bet); // OUTPUTS: // Folded: -1 // Called: 0 // Raised: >0 - říká, o kolik jsi zvýšil return bet; }
int betAI(P_PLAYER player) { int minimum = minimumBet(player); int bet = enterBetAI(player, minimum); const char* infoText; char textBuffer[50]; processMoneyBet(player, bet, minimum); switch (bet) { case -1: sprintf(textBuffer, "%s folded", player->name); infoText = textBuffer; //infoText = player->name + " folded."; break; case 0: if (minimum > 0) //infoText = player->name + " called to " + to_string(player->moneyBet); sprintf(textBuffer, "%s called to %d", player->name, player->moneyBet); else //infoText = player->name + " checked"; sprintf(textBuffer, "%s checked", player->name); infoText = textBuffer; break; default: //infoText = player->name + " has raised by " + to_string(bet) + " to bet of " + to_string(player->moneyBet); sprintf(textBuffer, "%s has raised by %d to bet of %d", player->name, bet, player->moneyBet); infoText = textBuffer; break; } if (player->allIn) { //infoText = player->name + " goes ALL IN with bet of " + to_string(player->moneyBet); sprintf(textBuffer, "%s goes ALL IN with bet of %d", player->name, player->moneyBet); infoText = textBuffer; } createScreen(infoText,"","PRESS ENTER TO CONTINUE"); getchar(); return bet; }