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"
示例#3
0
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
示例#4
0
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
示例#5
0
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()