Still correcting betting logic.
This commit is contained in:
@ -26,11 +26,9 @@ void _pokerGameActionBetOnUpdate(
|
|||||||
bool turnMade = false;
|
bool turnMade = false;
|
||||||
pokerturn_t turn;
|
pokerturn_t turn;
|
||||||
pokergame_t *game = (pokergame_t *)action->data;
|
pokergame_t *game = (pokergame_t *)action->data;
|
||||||
pokerplayer_t *player;
|
|
||||||
pokerdiscussiondata_t discussion;
|
pokerdiscussiondata_t discussion;
|
||||||
|
|
||||||
// Are they human?
|
// Are they human?
|
||||||
player = game->poker.players + game->poker.better;
|
|
||||||
isHuman = game->poker.better == POKER_WORLD_HUMAN_INDEX;
|
isHuman = game->poker.better == POKER_WORLD_HUMAN_INDEX;
|
||||||
|
|
||||||
// Handle as an AI
|
// Handle as an AI
|
||||||
@ -46,10 +44,10 @@ void _pokerGameActionBetOnUpdate(
|
|||||||
if(!turnMade) return;
|
if(!turnMade) return;
|
||||||
|
|
||||||
// Perform the action
|
// Perform the action
|
||||||
// pokerTurnAction(&game->poker, player, &turn);
|
pokerTurnAction(&game->poker, game->poker.better, turn);
|
||||||
|
|
||||||
// Speak
|
// Speak
|
||||||
// discussion.reason = pokerDiscussionGetTypeFromTurnType(turn.type);
|
discussion.reason = pokerDiscussionGetTypeFromTurnType(turn.type);
|
||||||
discussion.poker = game;
|
discussion.poker = game;
|
||||||
discussion.playerCause = game->poker.better;
|
discussion.playerCause = game->poker.better;
|
||||||
pokerDiscussionQueue(&discussion);
|
pokerDiscussionQueue(&discussion);
|
||||||
@ -64,19 +62,19 @@ void _pokerGameActionBetOnEnd(
|
|||||||
pokergame_t *game = (pokergame_t *)action->data;
|
pokergame_t *game = (pokergame_t *)action->data;
|
||||||
|
|
||||||
// // Get which player is remaining to move.
|
// // Get which player is remaining to move.
|
||||||
// game->poker.bet.better = pokerBetGetRemainingPlayer(
|
game->poker.better = pokerPlayerGetNextBetter(
|
||||||
// &game->poker.bet, game->poker.players, game->poker.roundSmallBlind
|
&game->poker, game->poker.better
|
||||||
// );
|
);
|
||||||
|
|
||||||
// // Restack
|
// Restack
|
||||||
// pokerGameActionRestackAdd(game);
|
pokerGameActionRestackAdd(game);
|
||||||
|
|
||||||
// // Are we waiting on any players?
|
// Are we waiting on any players?
|
||||||
// if(game->poker.bet.better != 0xFF) {
|
if(game->poker.better != 0xFF) {
|
||||||
// pokerGameActionLookAdd(game, game->poker.bet.better);
|
pokerGameActionLookAdd(game, game->poker.better);
|
||||||
// pokerGameActionBetAdd(game);
|
pokerGameActionBetAdd(game);
|
||||||
// return;
|
return;
|
||||||
// }
|
}
|
||||||
|
|
||||||
// Not waiting, do next action.
|
// Not waiting, do next action.
|
||||||
pokerGameActionFlopAdd(game);
|
pokerGameActionFlopAdd(game);
|
||||||
|
@ -459,6 +459,32 @@ pokerturn_t pokerTurnGetForPlayer(poker_t *poker, uint8_t playerIndex) {
|
|||||||
return turn;
|
return turn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void pokerTurnAction(poker_t *poker, uint8_t playerIndex, pokerturn_t turn) {
|
||||||
|
pokerplayer_t *player;
|
||||||
|
player = poker->players + playerIndex;
|
||||||
|
|
||||||
|
switch(turn.type) {
|
||||||
|
case POKER_TURN_TYPE_BET:
|
||||||
|
case POKER_TURN_TYPE_CALL:
|
||||||
|
case POKER_TURN_TYPE_ALL_IN:
|
||||||
|
pokerPlayerBet(poker, playerIndex, turn.chips);
|
||||||
|
player->timesRaised++;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case POKER_TURN_TYPE_CHECK:
|
||||||
|
pokerPlayerBet(poker, playerIndex, 0);
|
||||||
|
player->timesRaised = 0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case POKER_TURN_TYPE_FOLD:
|
||||||
|
player->state |= POKER_PLAYER_STATE_FOLDED;
|
||||||
|
player->timesRaised = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
player->state |= POKER_PLAYER_STATE_HAS_BET_THIS_ROUND;
|
||||||
|
}
|
||||||
|
|
||||||
int32_t pokerPlayerGetPotChipsSum(poker_t *poker, uint8_t playerIndex) {
|
int32_t pokerPlayerGetPotChipsSum(poker_t *poker, uint8_t playerIndex) {
|
||||||
int32_t count;
|
int32_t count;
|
||||||
uint8_t i;
|
uint8_t i;
|
||||||
|
@ -421,6 +421,15 @@ pokerturn_t pokerTurnBet(poker_t *poker, uint8_t playerIndex, int32_t chips);
|
|||||||
*/
|
*/
|
||||||
pokerturn_t pokerTurnGetForPlayer(poker_t *poker, uint8_t playerIndex);
|
pokerturn_t pokerTurnGetForPlayer(poker_t *poker, uint8_t playerIndex);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Perform the turn's action.
|
||||||
|
*
|
||||||
|
* @param poker Poker game instance.
|
||||||
|
* @param playerIndex Player index.
|
||||||
|
* @param turn Turn to action.
|
||||||
|
*/
|
||||||
|
void pokerTurnAction(poker_t *poker, uint8_t playerIndex, pokerturn_t turn);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the sum of chips in the pot(s) that the specified player is in. This
|
* Returns the sum of chips in the pot(s) that the specified player is in. This
|
||||||
* does not consider the pot, player or hand, just the pure sum of chips.
|
* does not consider the pot, player or hand, just the pure sum of chips.
|
||||||
|
Reference in New Issue
Block a user