46 lines
999 B
C++
46 lines
999 B
C++
// Copyright (c) 2022 Dominic Masters
|
|
//
|
|
// This software is released under the MIT License.
|
|
// https://opensource.org/licenses/MIT
|
|
|
|
#include "PokerTurn.hpp"
|
|
#include "PokerPlayer.hpp"
|
|
#include "PokerGame.hpp"
|
|
|
|
using namespace Dawn;
|
|
|
|
struct PokerTurn PokerTurn::bet(PokerPlayer *player, int32_t chips) {
|
|
struct PokerTurn turn;
|
|
int32_t i;
|
|
|
|
assertNotNull(player);
|
|
assertTrue(chips >= 0);
|
|
|
|
turn.confidence = 1;
|
|
|
|
if(chips == 0) {
|
|
turn.type = POKER_TURN_TYPE_CHECK;
|
|
turn.chips = 0;
|
|
} else if(player->chips <= chips) {
|
|
turn.chips = player->chips;
|
|
turn.type = POKER_TURN_TYPE_ALL_IN;
|
|
} else {
|
|
turn.chips = chips;
|
|
turn.type = POKER_TURN_TYPE_BET;
|
|
i = player->pokerGame->getCurrentCallValue();
|
|
|
|
if(chips == (i - player->currentBet)) {
|
|
turn.type = POKER_TURN_TYPE_CALL;
|
|
}
|
|
}
|
|
|
|
return turn;
|
|
}
|
|
|
|
struct PokerTurn PokerTurn::fold() {
|
|
struct PokerTurn turn;
|
|
turn.chips = 0;
|
|
turn.confidence = 1;
|
|
turn.type = POKER_TURN_TYPE_FOLD;
|
|
return turn;
|
|
} |