F
This commit is contained in:
74
src/poker/winner.h
Normal file
74
src/poker/winner.h
Normal file
@ -0,0 +1,74 @@
|
||||
/**
|
||||
* Copyright (c) 2021 Dominic Masters
|
||||
*
|
||||
* This software is released under the MIT License.
|
||||
* https://opensource.org/licenses/MIT
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
#include "card.h"
|
||||
#include "fuck.h"
|
||||
#include "../libs.h"
|
||||
|
||||
/**
|
||||
* Fills the remaining cards for a given poker player winning hand. Essentially
|
||||
* this will just take the highest cards and slot them into the array. This also
|
||||
* sorts the cards.
|
||||
*
|
||||
* @param winning Pointer to the poker winning to fill out.
|
||||
*/
|
||||
void pokerWinnerFillRemaining(pokerplayerwinning_t *winning);
|
||||
|
||||
/**
|
||||
* Calculates and returns the winning state for a given player
|
||||
*
|
||||
* @param poker Poker game instance.
|
||||
* @param player Player to get the state for.
|
||||
* @param winning Output winning state struct to push data in to.
|
||||
*/
|
||||
void pokerWinnerGetForPlayer(
|
||||
poker_t *poker, pokerplayer_t *player, pokerplayerwinning_t *winning
|
||||
);
|
||||
|
||||
/**
|
||||
* Compares two winning sets. The returned card is the kicker if the LEFT side
|
||||
* is the winner. If LEFT is not a winner then 0xFF will be returned.
|
||||
*
|
||||
* @param left Left winning set.
|
||||
* @param right Right winning set.
|
||||
* @return The kicker card from left's hand or 0xFF if left is not the winner.
|
||||
*/
|
||||
card_t pokerWinnerCompare(
|
||||
pokerplayerwinning_t *left, pokerplayerwinning_t *right
|
||||
);
|
||||
|
||||
/**
|
||||
* Determines the winning player for the given pot. The pot has participating
|
||||
* players, and from those participating players some will be winners. The
|
||||
* participants are only the players within the pot who haven't folded or out.
|
||||
*
|
||||
* @param poker Poker game instance.
|
||||
* @param pot Pot to get the winners for.
|
||||
* @param winners Array to store the winner state in.
|
||||
* @param winnerPlayers Array to store player indexes of each of the winners.
|
||||
* @param winnerCount Pointer to store the count of winners in.
|
||||
* @param participants Array to store player indexes of players who participate.
|
||||
* @param participantCount Pointer to store the count of participants in.
|
||||
*/
|
||||
void pokerWinnerDetermineForPot(
|
||||
poker_t *poker,
|
||||
pokerpot_t *pot,
|
||||
pokerplayerwinning_t winners[POKER_PLAYER_COUNT_MAX],
|
||||
uint8_t winnerPlayers[POKER_PLAYER_COUNT_MAX],
|
||||
uint8_t *winnerCount,
|
||||
uint8_t participants[POKER_PLAYER_COUNT_MAX],
|
||||
uint8_t *participantCount
|
||||
);
|
||||
|
||||
/**
|
||||
* Get the confidence of the bet for a given winning type.
|
||||
*
|
||||
* @param type Winning type type.
|
||||
* @return The confidence.
|
||||
*/
|
||||
float pokerWinnerGetTypeConfidence(uint8_t type);
|
Reference in New Issue
Block a user