Just getting the betting cycle done.

This commit is contained in:
2021-08-13 10:09:37 -07:00
parent eddc5bfafd
commit 98b50f5987
8 changed files with 59 additions and 25 deletions

View File

@ -52,4 +52,20 @@ queueaction_t * pokerActionRiverAdd(queue_t *queue, poker_t *poker) {
action->data = (void *)poker;
action->onStart = &_pokerActionRiverOnStart;
return action;
}
queueaction_t * pokerActionNextFlopAdd(queue_t *queue, poker_t *poker) {
switch(poker->dealer.cardsFacing) {
case 0:
return pokerActionFlopAdd(queue, poker);
case POKER_FLOP_CARD_COUNT:
return pokerActionTurnAdd(queue, poker);
case POKER_FLOP_CARD_COUNT+POKER_TURN_CARD_COUNT:
return pokerActionRiverAdd(queue, poker);
default:
return NULL;
}
}

View File

@ -50,4 +50,14 @@ queueaction_t * pokerActionTurnAdd(queue_t *queue, poker_t *poker);
* @param poker Poker game instance to river.
* @return The queued action.
*/
queueaction_t * pokerActionRiverAdd(queue_t *queue, poker_t *poker);
queueaction_t * pokerActionRiverAdd(queue_t *queue, poker_t *poker);
/**
* Queues the next type of flop action onto the queue. This will automatically
* select River, Flop or Turn depending on what's happened already.
*
* @param queue Queue to add to.
* @param poker Poker game instance
* @return The queued action.
*/
queueaction_t * pokerActionNextFlopAdd(queue_t *queue, poker_t *poker);

View File

@ -10,6 +10,7 @@
pokerturn_t pokerTurnGet(poker_t *poker, uint8_t playerIndex) {
pokerturn_t turn;
pokerplayer_t *player;
bool canCheck;
player = poker->players + playerIndex;
@ -18,10 +19,16 @@ pokerturn_t pokerTurnGet(poker_t *poker, uint8_t playerIndex) {
if(player->state & POKER_PLAYER_STATE_FOLDED) return turn;
if(player->state & POKER_PLAYER_STATE_OUT) return turn;
canCheck = player->currentBet >= poker->bet.currentBet;
if(canCheck) {
turn.type = POKER_TURN_TYPE_CHECK;
return turn;
}
// I have nfi
turn.type = POKER_TURN_TYPE_BET;
turn.chips = 1;
turn.chips = poker->bet.currentBet - player->currentBet;
turn.confidence = 1;
return turn;