/** * Copyright (c) 2021 Dominic Masters * * This software is released under the MIT License. * https://opensource.org/licenses/MIT */ #pragma once #include "../libs.h" #include "../util/flags.h" #include "common.h" #include "bet.h" /** * Add a player to the game. The player starts in an out state (with no chips). * * @param poker Poker game instance to add to. * @return Player index. */ uint8_t pokerPlayerAdd(poker_t *poker); /** * Add chips to a player. This will also update their state if they were out * to ensure that they are no longer. * * @param player Player to add chips to. * @param chips Amount of chips to add. */ void pokerPlayerChipsAdd(pokerplayer_t *player, int32_t chips); /** * Checks a players' state and decided whether or not the players still needs to * bet for the current round. This will check both whether the player has bet in * the current round yet, and whether or not they have met the call value of the * active pot. * * @param poker Poker game instance. * @param playerIndex Player index to check. * @return */ bool pokerPlayerDoesNeedToBetThisRound(poker_t *poker, uint8_t playerIndex); /** * Determine whether or not a player CAN check, given the current max bet and * the players current bet. * * @param poker Poker game instance. * @param player Player to check. * @return True if the player can check, false if they need to call first. */ bool pokerPlayerCanCheck(poker_t *poker, pokerplayer_t *player); /** * Returns the full hand for a given player including the cards on the bench. * * @param poker Poker game instance. * @param player Poker player to get the hand for. * @param cards Array to store the cards. */ void pokerPlayerGetFullHand( poker_t *poker, pokerplayer_t *player, card_t *cards );