Working on poker logic.
This commit is contained in:
@ -7,10 +7,6 @@
|
||||
|
||||
#include "winner.h"
|
||||
|
||||
void pokerWinnerGetBestCard(card_t *cards, uint8_t cardCount) {
|
||||
|
||||
}
|
||||
|
||||
void pokerWinnerHandGetFull(
|
||||
pokerdealer_t *dealer, pokerplayer_t *player, card_t *cards
|
||||
) {
|
||||
@ -242,6 +238,7 @@ void _pokerWinnerFillRemaining(pokerplayerwinning_t *winning) {
|
||||
}
|
||||
}
|
||||
|
||||
if(highest == 0xFF) break;
|
||||
winning->set[winning->setSize++] = highestCard;
|
||||
}
|
||||
cardHandSort(winning->set, winning->setSize);
|
||||
@ -385,3 +382,53 @@ void pokerWinnerCalculate(
|
||||
winner->winners[winner->winnerCount++] = i;
|
||||
}
|
||||
}
|
||||
|
||||
card_t pokerWinnerGetBestCard(card_t *cards, uint8_t cardCount) {
|
||||
uint8_t i, number, bestNumber;
|
||||
card_t card, bestCard;
|
||||
|
||||
bestNumber = 0xFF;
|
||||
|
||||
for(i = 0; i < cardCount; i++) {
|
||||
card = cards[i];
|
||||
number = cardGetNumber(card);
|
||||
if(number == CARD_ACE) return card;
|
||||
if(bestNumber != 0xFF && number <= bestNumber) continue;
|
||||
|
||||
bestCard = card;
|
||||
bestNumber = number;
|
||||
}
|
||||
|
||||
return bestNumber;
|
||||
}
|
||||
|
||||
float pokerWinnerGetTypeConfidence(uint8_t type) {
|
||||
switch(type) {
|
||||
case POKER_WINNING_TYPE_ROYAL_FLUSH:
|
||||
return POKER_WINNNIG_CONFIDENCE_ROYAL_FLUSH;
|
||||
case POKER_WINNING_TYPE_STRAIGHT_FLUSH:
|
||||
return POKER_WINNNIG_CONFIDENCE_STRAIGHT_FLUSH;
|
||||
case POKER_WINNING_TYPE_FOUR_OF_A_KIND:
|
||||
return POKER_WINNNIG_CONFIDENCE_FOUR_OF_A_KIND;
|
||||
case POKER_WINNING_TYPE_FULL_HOUSE:
|
||||
return POKER_WINNNIG_CONFIDENCE_FULL_HOUSE;
|
||||
case POKER_WINNING_TYPE_FLUSH:
|
||||
return POKER_WINNNIG_CONFIDENCE_FLUSH;
|
||||
case POKER_WINNING_TYPE_STRAIGHT:
|
||||
return POKER_WINNNIG_CONFIDENCE_STRAIGHT;
|
||||
case POKER_WINNING_TYPE_THREE_OF_A_KIND:
|
||||
return POKER_WINNNIG_CONFIDENCE_THREE_OF_A_KIND;
|
||||
case POKER_WINNING_TYPE_TWO_PAIR:
|
||||
return POKER_WINNNIG_CONFIDENCE_TWO_PAIR;
|
||||
case POKER_WINNING_TYPE_PAIR:
|
||||
return POKER_WINNNIG_CONFIDENCE_PAIR;
|
||||
default:
|
||||
return POKER_WINNNIG_CONFIDENCE_HIGH_CARD;
|
||||
}
|
||||
}
|
||||
|
||||
float pokerWinnerGetCardWeight(card_t card) {
|
||||
uint8_t number;
|
||||
number = cardGetNumber(card);
|
||||
return ((float)number + 1)/((float)CARD_ACE + 1);
|
||||
}
|
Reference in New Issue
Block a user