Started merging new poker code in.
This commit is contained in:
117
src/poker/bet.h
117
src/poker/bet.h
@ -1,117 +0,0 @@
|
||||
// Copyright (c) 2021 Dominic Masters
|
||||
//
|
||||
// This software is released under the MIT License.
|
||||
// https://opensource.org/licenses/MIT
|
||||
|
||||
#pragma once
|
||||
#include "../libs.h"
|
||||
#include "player.h"
|
||||
#include "../util/math.h"
|
||||
#include "../util/array.h"
|
||||
|
||||
/** How many chips each player has by defautl */
|
||||
#define POKER_BET_PLAYER_CHIPS_DEFAULT 1200
|
||||
|
||||
/** The default blind cost for the big blind. */
|
||||
#define POKER_BET_BLIND_BIG_DEFAULT 600
|
||||
|
||||
/** The default blind cost for the small blind. (Defaults half big blind) */
|
||||
#define POKER_BET_BLIND_SMALL_DEFAULT (POKER_BET_BLIND_BIG_DEFAULT/2)
|
||||
|
||||
typedef struct {
|
||||
/** Blinds */
|
||||
int32_t blindSmall, blindBig;
|
||||
|
||||
/** How big the current bet is for the round. */
|
||||
int32_t currentBet;
|
||||
|
||||
/** For Betting round, which player is currently betting */
|
||||
uint8_t better;
|
||||
|
||||
/** Current pot of chips */
|
||||
int32_t pot;
|
||||
} pokerbet_t;
|
||||
|
||||
/**
|
||||
* Initializes/resets the poker bet context.
|
||||
*
|
||||
* @param bet Poker bet instance.
|
||||
*/
|
||||
void pokerBetInit(pokerbet_t *bet);
|
||||
|
||||
/**
|
||||
* Resets the bet state (for a new round).
|
||||
*
|
||||
* @param bet Betting stating.
|
||||
*/
|
||||
void pokerBetReset(pokerbet_t *bet);
|
||||
|
||||
/**
|
||||
* The default betting player for the round.
|
||||
*
|
||||
* @param roundSmallBlind Current round small blind player index.
|
||||
* @return The Poker round default betting player index.
|
||||
*/
|
||||
uint8_t pokerBetGetRoundPlayerDefault(uint8_t roundSmallBlind);
|
||||
|
||||
/**
|
||||
* Let a player bet chips into the pot.
|
||||
*
|
||||
* @param bet Poker bet instance.
|
||||
* @param player Poker player instance.
|
||||
* @param chips Chips to bet.
|
||||
*/
|
||||
void pokerBetPlayer(pokerbet_t *bet, 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 bet Poker betting structure.
|
||||
* @param player Array of poker players.
|
||||
* @param roundSmallBlind Current round small blind player index.
|
||||
*/
|
||||
void pokerBetResetBetter(
|
||||
pokerbet_t *poker, pokerplayer_t *players, uint8_t roundSmallBlind
|
||||
);
|
||||
|
||||
/**
|
||||
* Returns whether or not a player can bet for the current round.
|
||||
*
|
||||
* @param bet Game bet state.
|
||||
* @param player Player to check.
|
||||
* @return True if the player can bet, otherwise false.
|
||||
*/
|
||||
bool pokerBetPlayerCanBet(pokerbet_t *bet, pokerplayer_t *player);
|
||||
|
||||
/**
|
||||
* Returns the index of the first player that remains to bet for the current
|
||||
* round.
|
||||
*
|
||||
* @param bet Poker betting structure.
|
||||
* @param player Array of poker players.
|
||||
* @param roundSmallBlind Current round small blind player index.
|
||||
* @return The player index of the remaining player, otherwise 0xFF.
|
||||
*/
|
||||
uint8_t pokerBetGetRemainingPlayer(
|
||||
pokerbet_t *bet, pokerplayer_t *players, uint8_t roundSmallBlind
|
||||
);
|
||||
|
||||
/**
|
||||
* Returns the count of players who are still needing to bet.
|
||||
*
|
||||
* @param bet Betting instance
|
||||
* @param players Players array.
|
||||
* @return Count of players who can still bet.
|
||||
*/
|
||||
uint8_t pokerBetGetRemainingPlayerCount(pokerbet_t *bet,pokerplayer_t *players);
|
||||
|
||||
/**
|
||||
* Takes the current blinds from the correct players.
|
||||
*
|
||||
* @param poker Poker game to take the blinds from.
|
||||
*/
|
||||
void pokerBetTakeBlinds(
|
||||
pokerbet_t *bet, pokerplayer_t *players,
|
||||
uint8_t roundSmallBlind, uint8_t roundBigBlind
|
||||
);
|
Reference in New Issue
Block a user