def test_hand(n_players): """Test a hand can be played.""" from pluribus import utils from pluribus.ai.dummy import RandomPlayer from pluribus.poker.table import PokerTable from pluribus.poker.engine import PokerEngine from pluribus.poker.pot import Pot utils.random.seed(42) initial_chips_amount = 10000 small_blind_amount = 10 big_blind_amount = 50 pot = Pot() players = [ RandomPlayer( name=f'player {player_i}', initial_chips=initial_chips_amount, pot=pot) for player_i in range(n_players) ] table = PokerTable(players=players, pot=pot) engine = PokerEngine( table=table, small_blind=small_blind_amount, big_blind=big_blind_amount) engine.play_one_round()
def test_short_deck_1(): """Test the short deck poker game state works as expected.""" from pluribus.games.short_deck.player import ShortDeckPokerPlayer from pluribus.games.short_deck.state import ShortDeckPokerState from pluribus.poker.pot import Pot n_players = 3 pot = Pot() players = [ ShortDeckPokerPlayer(player_i=player_i, pot=pot, initial_chips=10000) for player_i in range(n_players) ] state = ShortDeckPokerState(players=players, load_pickle_files=False) # Call for all players. for player_i in range(n_players): assert state.current_player.name == f"player_{player_i}" assert len(state.legal_actions) == 3 assert state._betting_stage == "pre_flop" state = state.apply_action(action_str="call") # Fold for all but last player. for player_i in range(n_players - 1): assert state.current_player.name == f"player_{player_i}" assert len(state.legal_actions) == 3 assert state._betting_stage == "flop" state = state.apply_action(action_str="fold") # Only one player left, so game state should be terminal. assert state.is_terminal, "state was not terminal" assert state._betting_stage == "terminal"
def new_game(n_players: int) -> ShortDeckPokerState: """Create a new game of short deck poker.""" pot = Pot() players = [ ShortDeckPokerPlayer(player_i=player_i, initial_chips=10000, pot=pot) for player_i in range(n_players) ] state = ShortDeckPokerState(players=players) return state
def new_game( n_players: int, small_blind: int = 50, big_blind: int = 100, initial_chips: int = 10000, ) -> Tuple[ShortDeckPokerState, Pot]: """Create a new game.""" pot = Pot() players = [ ShortDeckPokerPlayer(player_i=player_i, pot=pot, initial_chips=initial_chips) for player_i in range(n_players) ] state = ShortDeckPokerState( players=players, load_pickle_files=False, small_blind=small_blind, big_blind=big_blind, ) return state
from pluribus import utils from pluribus.ai.dummy import RandomPlayer from pluribus.poker.table import PokerTable from pluribus.poker.engine import PokerEngine from pluribus.poker.pot import Pot utils.random.seed(42) initial_chips_amount = 10000 small_blind_amount = 50 big_blind_amount = 100 pot = Pot() players = [ RandomPlayer(name=f'player {player_i}', initial_chips=initial_chips_amount, pot=pot) for player_i in range(6) ] table = PokerTable(players=players, pot=pot) engine = PokerEngine(table=table, small_blind=small_blind_amount, big_blind=big_blind_amount) engine.play_one_round()