Added more poker tests.
This commit is contained in:
@ -7,20 +7,24 @@
|
||||
|
||||
#include "bet.h"
|
||||
|
||||
// Done
|
||||
void pokerBetInit(pokerbet_t *bet) {
|
||||
bet->blindBig = POKER_BET_BLIND_BIG_DEFAULT;
|
||||
bet->blindSmall = POKER_BET_BLIND_SMALL_DEFAULT;
|
||||
}
|
||||
|
||||
// Done
|
||||
void pokerBetReset(pokerbet_t *bet) {
|
||||
bet->pot = 0;
|
||||
bet->currentBet = 0;
|
||||
}
|
||||
|
||||
// Not needed
|
||||
uint8_t pokerBetGetRoundPlayerDefault(uint8_t roundSmallBlind) {
|
||||
return (roundSmallBlind + 1) % POKER_PLAYER_COUNT;
|
||||
}
|
||||
|
||||
// Done
|
||||
void pokerBetPlayer(pokerbet_t *bet, pokerplayer_t *player, int32_t chips) {
|
||||
bet->pot += chips;
|
||||
player->chips -= chips;
|
||||
@ -28,6 +32,7 @@ void pokerBetPlayer(pokerbet_t *bet, pokerplayer_t *player, int32_t chips) {
|
||||
bet->currentBet = mathMax(bet->currentBet, player->currentBet);
|
||||
}
|
||||
|
||||
// Doneish
|
||||
void pokerBetResetBetter(
|
||||
pokerbet_t *bet, pokerplayer_t *players, uint8_t roundSmallBlind
|
||||
) {
|
||||
@ -50,6 +55,7 @@ void pokerBetResetBetter(
|
||||
bet->better = pokerBetGetRemainingPlayer(bet, players, roundSmallBlind);
|
||||
}
|
||||
|
||||
// Doneish
|
||||
bool pokerBetPlayerCanBet(pokerbet_t *bet, pokerplayer_t *player) {
|
||||
// Is the player out?
|
||||
if(!pokerPlayerIsInRound(player)) return false;
|
||||
|
@ -6,6 +6,7 @@
|
||||
*/
|
||||
#include "dealer.h"
|
||||
|
||||
//Not needed
|
||||
void pokerDealerInit(pokerdealer_t *dealer) {
|
||||
uint8_t i;
|
||||
|
||||
@ -15,6 +16,7 @@ void pokerDealerInit(pokerdealer_t *dealer) {
|
||||
for(i = 0; i < CARD_DECK_SIZE; i++) dealer->deck[i] = i;
|
||||
}
|
||||
|
||||
// Done
|
||||
void pokerDealerTurn(pokerdealer_t *dealer, uint8_t count) {
|
||||
uint8_t i;
|
||||
for(i = 0; i < count; i++) {
|
||||
@ -25,6 +27,7 @@ void pokerDealerTurn(pokerdealer_t *dealer, uint8_t count) {
|
||||
}
|
||||
}
|
||||
|
||||
// Done
|
||||
void pokerDealerBurn(pokerdealer_t *dealer, uint8_t count) {
|
||||
uint8_t i;
|
||||
for(i = 0; i < count; i++) {
|
||||
@ -35,10 +38,12 @@ void pokerDealerBurn(pokerdealer_t *dealer, uint8_t count) {
|
||||
}
|
||||
}
|
||||
|
||||
// Done
|
||||
void pokerDealerDeal(pokerdealer_t *dealer, pokerplayer_t *player) {
|
||||
cardDeal(dealer->deck, &dealer->deckSize, player->cards, &player->cardCount);
|
||||
}
|
||||
|
||||
// Done
|
||||
void pokerDealerDealAll(
|
||||
pokerdealer_t *dealer, pokerplayer_t *players, uint8_t count
|
||||
) {
|
||||
|
@ -9,7 +9,6 @@
|
||||
|
||||
void pokerInit(poker2_t *poker) {
|
||||
poker->playerCount = 0;
|
||||
poker->state = 0;
|
||||
poker->playerDealer = 0;
|
||||
poker->playerSmallBlind = 0;
|
||||
poker->playerBigBlind = 0;
|
||||
@ -168,6 +167,28 @@ bool pokerPlayerDoesNeedToBetThisRound(poker2_t *poker, uint8_t playerIndex) {
|
||||
return false;
|
||||
}
|
||||
|
||||
uint8_t pokerPlayerGetRemainingBetter(poker2_t *poker) {
|
||||
uint8_t i, j;
|
||||
poker2player_t *player;
|
||||
|
||||
for(i = 0; i < poker->playerCount; i++) {
|
||||
j = (i + poker->playerBigBlind + 1) % poker->playerCount;
|
||||
if(pokerPlayerDoesNeedToBetThisRound(poker, j)) return j;
|
||||
}
|
||||
return 0xFF;
|
||||
}
|
||||
|
||||
uint8_t pokerPlayerGetNextBetter(poker2_t *poker, uint8_t current) {
|
||||
uint8_t i, j;
|
||||
poker2player_t *player;
|
||||
|
||||
for(i = 0; i < poker->playerCount; i++) {
|
||||
j = (i + current + 1) % poker->playerCount;
|
||||
if(pokerPlayerDoesNeedToBetThisRound(poker, j)) return j;
|
||||
}
|
||||
return 0xFF;
|
||||
}
|
||||
|
||||
// Betting
|
||||
void pokerPlayerBetPot(
|
||||
poker2_t *poker, poker2pot_t *pot, uint8_t playerIndex, int32_t chips
|
||||
|
@ -56,8 +56,6 @@ typedef struct {
|
||||
uint8_t playerDealer;
|
||||
uint8_t playerSmallBlind;
|
||||
uint8_t playerBigBlind;
|
||||
|
||||
uint8_t state;
|
||||
} poker2_t;
|
||||
|
||||
|
||||
@ -83,6 +81,8 @@ void pokerPlayerDeal(poker2_t *poker, poker2player_t *player, uint8_t count);
|
||||
void pokerPlayerChipsAdd(poker2player_t *player, int32_t chips);
|
||||
void pokerPlayerDealAll(poker2_t *poker, uint8_t count);
|
||||
bool pokerPlayerDoesNeedToBetThisRound(poker2_t *poker, uint8_t playerIndex);
|
||||
uint8_t pokerPlayerGetRemainingBetter(poker2_t *poker);
|
||||
uint8_t pokerPlayerGetNextBetter(poker2_t *poker, uint8_t current);
|
||||
void pokerPlayerBetPot(
|
||||
poker2_t *poker, poker2pot_t *pot, uint8_t playerIndex, int32_t chips
|
||||
);
|
||||
|
Reference in New Issue
Block a user