Testing some UI interactions.
This commit is contained in:
@ -7,10 +7,10 @@
|
||||
|
||||
#include "turn.h"
|
||||
|
||||
|
||||
pokerturn_t pokerTurnGet(poker_t *poker, uint8_t playerIndex) {
|
||||
pokerturn_t turn;
|
||||
pokerplayer_t *player;
|
||||
bool canCheck;
|
||||
|
||||
player = poker->players + playerIndex;
|
||||
|
||||
@ -19,9 +19,7 @@ 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) {
|
||||
if(pokerTurnCanPlayerCheck(poker, playerIndex)) {
|
||||
turn.type = POKER_TURN_TYPE_CHECK;
|
||||
return turn;
|
||||
}
|
||||
@ -42,10 +40,42 @@ void pokerTurnAction(poker_t *poker, pokerplayer_t *player, pokerturn_t *turn) {
|
||||
pokerBetPlayer(poker, player, turn->chips);
|
||||
break;
|
||||
|
||||
case POKER_TURN_TYPE_CHECK:
|
||||
break;
|
||||
|
||||
case POKER_TURN_TYPE_FOLD:
|
||||
player->state |= POKER_PLAYER_STATE_FOLDED;
|
||||
break;
|
||||
}
|
||||
|
||||
player->state |= POKER_PLAYER_STATE_ROUND_MOVE;
|
||||
}
|
||||
|
||||
pokerturn_t pokerTurnFold(poker_t *poker, uint8_t player) {
|
||||
pokerturn_t turn;
|
||||
turn.type = POKER_TURN_TYPE_FOLD;
|
||||
return turn;
|
||||
}
|
||||
|
||||
void pokerTurnCheck(poker_t *poker, uint8_t player) {
|
||||
pokerturn_t turn;
|
||||
turn.type = POKER_TURN_TYPE_CHECK;
|
||||
turn.chips = 0;
|
||||
return turn;
|
||||
}
|
||||
|
||||
void pokerTurnCall(poker_t *poker, uint8_t playerIndex) {
|
||||
pokerturn_t turn;
|
||||
pokerplayer_t *player;
|
||||
bool canCheck;
|
||||
|
||||
player = poker->players + playerIndex;
|
||||
turn.type = POKER_TURN_TYPE_CHECK;
|
||||
turn.chips = poker->bet.currentBet - player->chips;
|
||||
|
||||
return turn;
|
||||
}
|
||||
|
||||
bool pokerTurnCanPlayerCheck(poker_t *poker, uint8_t playerIndex) {
|
||||
return (poker->players + playerIndex)->currentBet >= poker->bet.currentBet;
|
||||
}
|
@ -35,6 +35,15 @@ typedef struct {
|
||||
*/
|
||||
pokerturn_t pokerTurnGet(poker_t *poker, uint8_t playerIndex);
|
||||
|
||||
/**
|
||||
* Return a turn action for the given player to fold.
|
||||
*
|
||||
* @param poker Poker game instance.
|
||||
* @param player Player index.
|
||||
* @return A turn for a fold action.
|
||||
*/
|
||||
pokerturn_t pokerTurnFold(poker_t *poker, uint8_t player);
|
||||
|
||||
/**
|
||||
* Perform the turn's action.
|
||||
*
|
||||
@ -42,4 +51,14 @@ pokerturn_t pokerTurnGet(poker_t *poker, uint8_t playerIndex);
|
||||
* @param player Player instance.
|
||||
* @param turn Turn to action.
|
||||
*/
|
||||
void pokerTurnAction(poker_t *poker, pokerplayer_t *player, pokerturn_t *turn);
|
||||
void pokerTurnAction(poker_t *poker, pokerplayer_t *player, pokerturn_t *turn);
|
||||
|
||||
/**
|
||||
* Determine whether or not a player CAN check, given the current max bet and
|
||||
* the players current bet.
|
||||
*
|
||||
* @param poker Poker game instance.
|
||||
* @param playerIndex Poker player index.
|
||||
* @return True if the player can check, false if they need to call first.
|
||||
*/
|
||||
bool pokerTurnCanPlayerCheck(poker_t *poker, uint8_t playerIndex);
|
Reference in New Issue
Block a user