Even more refactoring

This commit is contained in:
2021-09-19 20:50:35 -07:00
parent 9912f0a15b
commit fae6cd04db
22 changed files with 120 additions and 114 deletions

View File

@ -7,27 +7,27 @@
#include "winner.h"
void pokerWinnerHandGetFull(poker_t *poker, pokerplayer_t *player,
card_t *cards
){
void pokerWinnerHandGetFull(
pokerdealer_t *dealer, pokerplayer_t *player, card_t *cards
) {
uint8_t i;
// Add the dealer hand
for(i = 0; i < poker->dealer.cardsFacing; i++) {
cards[i] = poker->dealer.cards[i];
for(i = 0; i < dealer->cardsFacing; i++) {
cards[i] = dealer->cards[i];
}
// Add the player hand
for(i = 0; i < player->cardCount; i++) {
cards[i+poker->dealer.cardsFacing] = player->cards[i];
cards[i+dealer->cardsFacing] = player->cards[i];
}
// Sort by card value
cardHandSort(cards, poker->dealer.cardsFacing + player->cardCount);
cardHandSort(cards, dealer->cardsFacing + player->cardCount);
}
void pokerWinnerPlayerGet(
poker_t *poker, pokerplayer_t *player, pokerplayerwinning_t *winning
pokerdealer_t *dealer, pokerplayer_t *player, pokerplayerwinning_t *winning
) {
uint8_t i, j, l;
int32_t index;
@ -36,8 +36,8 @@ void pokerWinnerPlayerGet(
int32_t pairs[CARD_SUIT_COUNT];
// Get the full poker hand (should be a 7 card hand, but MAY not be)
winning->fullSize = poker->dealer.cardsFacing + player->cardCount;
pokerWinnerHandGetFull(poker, player, winning->full);
winning->fullSize = dealer->cardsFacing + player->cardCount;
pokerWinnerHandGetFull(dealer, player, winning->full);
// Reset the winning status.
winning->setSize = 0;
@ -284,26 +284,26 @@ card_t pokerWinnerCompare(pokerplayerwinning_t *left, pokerplayerwinning_t *righ
return highCardLeft;//Greater or Equal to.
}
void pokerWinnerCalculate(poker_t *poker) {
void pokerWinnerCalculate(
pokerwinner_t *winner, pokerdealer_t *dealer, pokerplayer_t *players
) {
uint8_t i, j, number, highNumber;
pokerwinner_t *winner;
pokerplayerwinning_t *left, *right;
pokerplayer_t *player;
card_t card, highCard;
bool isWinner;
winner = &poker->winner;
winner->winnerCount = 0;
// Get winning sets
for(i = 0; i < POKER_PLAYER_COUNT; i++) {
left = winner->winnings + i;
left->type = POKER_WINNING_TYPE_NULL;
player = poker->players + i;
player = players + i;
if(!pokerPlayerIsAlive(player)) continue;
// Get the players' winning state.
pokerWinnerPlayerGet(poker, player, left);
pokerWinnerPlayerGet(dealer, player, left);
}
// Compare against each player