76 lines
1.9 KiB
C
76 lines
1.9 KiB
C
/**
|
|
* Copyright (c) 2021 Dominic Masters
|
|
*
|
|
* This software is released under the MIT License.
|
|
* https://opensource.org/licenses/MIT
|
|
*/
|
|
|
|
#include "bet.h"
|
|
|
|
void pokerRoundBetPlayerNext(poker_t *poker) {
|
|
// Go to next player, keep contained.
|
|
poker->roundBetCurrent = (poker->roundBetCurrent + 1) % POKER_PLAYER_COUNT;
|
|
|
|
// Did we go full circle?
|
|
if(poker->roundBetCurrent == poker->roundSmallBlind) {
|
|
if(poker->round == POKER_ROUND_BET3) {
|
|
pokerWinnerInit(poker);
|
|
return;
|
|
}
|
|
|
|
pokerFlopInit(poker);
|
|
return;
|
|
}
|
|
|
|
// Init the next player
|
|
pokerRoundBetPlayerInit(poker, poker->players + poker->roundBetCurrent);
|
|
}
|
|
|
|
|
|
void pokerRoundBetPlayerInit(poker_t *poker, pokerplayer_t *player) {
|
|
// Check the player state (to see if we even can init, e.g. folded/not)
|
|
if(!pokerPlayerIsAlive(player)) {
|
|
pokerRoundBetPlayerNext(poker);
|
|
return;
|
|
}
|
|
|
|
printf("Betting round player %u\n", poker->roundBetCurrent);
|
|
if(pokerPlayerIsHuman(poker, player)) {
|
|
pokerRoundBetPlayerNext(poker);
|
|
return;
|
|
}
|
|
|
|
pokerRoundBetPlayerNext(poker);
|
|
}
|
|
|
|
void pokerRoundBetPlayerUpdate(poker_t *poker, pokerplayer_t *player) {
|
|
|
|
}
|
|
|
|
|
|
void pokerRoundBetInit(poker_t *poker) {
|
|
printf("Betting round start\n");
|
|
|
|
if(poker->round == POKER_ROUND_DEAL) {
|
|
poker->round = POKER_ROUND_BET0;
|
|
printf("Betting 0\n");
|
|
} else if(poker->round == POKER_ROUND_FLOP) {
|
|
poker->round = POKER_ROUND_BET1;
|
|
printf("Betting 1\n");
|
|
} else if(poker->round == POKER_ROUND_TURN) {
|
|
poker->round = POKER_ROUND_BET2;
|
|
printf("Betting 2\n");
|
|
} else if(poker->round == POKER_ROUND_RIVER) {
|
|
poker->round = POKER_ROUND_BET3;
|
|
printf("Betting 3\n");
|
|
}
|
|
|
|
// Set the inital player
|
|
poker->roundBetCurrent = poker->roundSmallBlind;
|
|
pokerRoundBetPlayerInit(poker, poker->players+poker->roundBetCurrent);
|
|
}
|
|
|
|
void pokerRoundBetUpdate(poker_t *poker) {
|
|
// Take the current player
|
|
pokerRoundBetPlayerUpdate(poker, poker->players + poker->roundBetCurrent);
|
|
} |