Added basic betting, turns, and added queue restacking

This commit is contained in:
2021-08-13 09:32:15 -07:00
parent 82fe9a7e3c
commit eddc5bfafd
14 changed files with 217 additions and 8 deletions

View File

@ -14,12 +14,18 @@ void pokerBetInit(pokerbet_t *bet) {
void pokerBetReset(pokerbet_t *bet) {
bet->pot = 0;
bet->currentBet = 0;
}
void pokerBetPlayer(poker_t *poker, pokerplayer_t *player, int32_t chips) {
poker->bet.pot += chips;
player->chips -= chips;
player->currentBet += chips;
poker->bet.currentBet = mathMax(poker->bet.currentBet, player->currentBet);
}
void pokerBetResetBetter(poker_t *poker) {
poker->bet.better = (poker->roundSmallBlind + 1) % POKER_PLAYER_COUNT;
}
void pokerBetTakeBlinds(poker_t *poker) {

View File

@ -29,6 +29,14 @@ void pokerBetReset(pokerbet_t *bet);
*/
void pokerBetPlayer(poker_t *poker, pokerplayer_t *player, int32_t chips);
/**
* Reset the current better back to the round/turns default. The better will
* always be the player to the right of the small blind player.
*
* @param poker Poker game to update for.
*/
void pokerBetResetBetter(poker_t *poker);
/**
* Takes the current blinds from the correct players.
*

28
src/poker/turn.c Normal file
View File

@ -0,0 +1,28 @@
/**
* Copyright (c) 2021 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#include "turn.h"
pokerturn_t pokerTurnGet(poker_t *poker, uint8_t playerIndex) {
pokerturn_t turn;
pokerplayer_t *player;
player = poker->players + playerIndex;
// Can the player do anything?
turn.type = POKER_TURN_TYPE_OUT;
if(player->state & POKER_PLAYER_STATE_FOLDED) return turn;
if(player->state & POKER_PLAYER_STATE_OUT) return turn;
// I have nfi
turn.type = POKER_TURN_TYPE_BET;
turn.chips = 1;
turn.confidence = 1;
return turn;
}

11
src/poker/turn.h Normal file
View File

@ -0,0 +1,11 @@
/**
* Copyright (c) 2021 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#pragma once
#include <dawn/dawn.h>
pokerturn_t pokerTurnGet(poker_t *poker, uint8_t playerIndex);