55 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /**
 | |
|  * Copyright (c) 2021 Dominic Masters
 | |
|  * 
 | |
|  * This software is released under the MIT License.
 | |
|  * https://opensource.org/licenses/MIT
 | |
|  */
 | |
| 
 | |
| #pragma once
 | |
| #include "../libs.h"
 | |
| #include "bet.h"
 | |
| #include "dealer.h"
 | |
| #include "player.h"
 | |
| #include "card.h"
 | |
| #include "winner.h"
 | |
| 
 | |
| /** How many cards to deal each player during the deal round */
 | |
| #define POKER_DEAL_CARD_EACH 2
 | |
| 
 | |
| /** How many cards are dealt for the flop, turn and river */
 | |
| #define POKER_FLOP_CARD_COUNT 3
 | |
| #define POKER_TURN_CARD_COUNT 1
 | |
| #define POKER_RIVER_CARD_COUNT 1
 | |
| 
 | |
| 
 | |
| #define POKER_STATE_NULL 0x00
 | |
| #define POKER_STATE_STARTING_MATCH 0x01
 | |
| #define POKER_STATE_STARTING_ROUND 0x02
 | |
| #define POKER_STATE_TAKING_BLINDS 0x03
 | |
| #define POKER_STATE_DEALING 0x04
 | |
| #define POKER_STATE_CARDS_FLOPPING 0x05
 | |
| #define POKER_STATE_BETTING 0x06
 | |
| #define POKER_STATE_DECIDING_WINNER 0x07
 | |
| 
 | |
| typedef struct {
 | |
|   /** Poker betting state */
 | |
|   pokerbet_t bet;
 | |
|   
 | |
|   /** Player States */
 | |
|   pokerdealer_t dealer;
 | |
|   pokerplayer_t players[POKER_PLAYER_COUNT];
 | |
| 
 | |
|   /** Winning player states */
 | |
|   pokerwinner_t winner;
 | |
| 
 | |
|   /** The current player that is the dealer */
 | |
|   uint8_t roundDealer;
 | |
| 
 | |
|   /** Which player is the small blind for this round */
 | |
|   uint8_t roundSmallBlind;
 | |
| 
 | |
|   /** Which player is the big blind for this round */
 | |
|   uint8_t roundBigBlind;
 | |
| 
 | |
|   uint8_t state;
 | |
| } poker_t; |