Texas Hold’em

environment gif

This environment is part of the classic environments. Please read that page first for general information.

Name Value
Actions Discrete
Agents 2
Parallel API false
Manual Control No
Action Shape Discrete(4)
Action Values Discrete(4)
Observation Shape (72,)
Observation Values [0, 1]
Import from pettingzoo.classic import texas_holdem_v0
Agents agents= ['player_0', 'player_1']

Agent Environment Cycle

environment aec diagram

Texas Hold’em

Texas Hold’em is a poker game involving 2 players and a regular 52 cards deck. At the beginning, both players get two cards. After betting, three community cards are shown and another round follows. At any time, a player could fold and the game will end. The winner will receive +1 as a reward and the loser will get -1. This is an implementation of the standard limitted version of Texas Hold’m, sometimes referred to as ‘Limit Texas Hold’em’.

Our implementation wraps RLCard and you can refer to its documentation for additional details. Please cite their work if you use this game in research.

Observation Space

The observation space is a vector of 72 boolean integers. The first 52 entries depict the current player’s hand plus any community cards as follows

Index Description
0 - 12 Spades
0: A, 1: 2, …, 12: K
13 - 25 Hearts
13: A, 14: 2, …, 25: K
26 - 38 Diamonds
26: A, 27: 2, …, 38: K
39 - 51 Clubs
39: A, 40: 2, …, 51: K
52 - 56 Chips raised in Round 1
52: 0, 53: 1, …, 56: 4
57 - 61 Chips raised in Round 2
57: 0, 58: 1, …, 61: 4
62 - 66 Chips raised in Round 3
62: 0, 63: 1, …, 66: 4
67 - 71 Chips raised in Round 4
67: 0, 68: 1, …, 71: 4

Action Space

Action ID Action
0 Call
1 Raise
2 Fold
3 Check

Rewards

Winner Loser
+raised chips/2 -raised chips/2

The legal moves available for each agent, found in env.infos[agent]['legal_moves'], are updated after each step. Taking an illegal move ends the game with a reward of -1 for the illegally moving agent and a reward of 0 for all other agents.