德州扑克

../../../_images/classic_texas_holdem.gif

此环境是经典环境的一部分。请先阅读该页面以获取一般信息。

导入

from pettingzoo.classic import texas_holdem_v4

动作

离散

并行 API

手动控制

智能体

agents= ['player_0', 'player_1']

智能体

2

动作空间形状

离散(4)

动作值

离散(4)

观测空间形状

(72,)

观测值

[0, 1]

参数

texas_holdem_v4.env(num_players=2)

num_players: 设置游戏中的玩家数量。最少为 2 名玩家。

观测空间

观测是一个字典,其中包含一个'observation'元素(即下面描述的常规强化学习观测)和一个'action_mask'元素(用于存储合法动作,详见合法动作掩码部分)。

主要观测空间是一个包含 72 个布尔整型的向量。前 52 个条目表示当前玩家的手牌和任何公共牌,如下所示

索引

描述

0 - 12

黑桃
0: A, 1: 2, ..., 12: K

13 - 25

红心
13: A, 14: 2, ..., 25: K

26 - 38

方块
26: A, 27: 2, ..., 38: K

39 - 51

梅花
39: A, 40: 2, ..., 51: K

52 - 56

第 1 轮下注筹码
52: 0, 53: 1, ..., 56: 4

57 - 61

第 2 轮下注筹码
57: 0, 58: 1, ..., 61: 4

62 - 66

第 3 轮下注筹码
62: 0, 63: 1, ..., 66: 4

67 - 71

第 4 轮下注筹码
67: 0, 68: 1, ..., 71: 4

动作空间

动作 ID

动作

0

跟注

1

加注

2

弃牌

3

让牌

奖励

赢家

输家

+下注筹码/2

-下注筹码/2

版本历史

  • v4: 升级到 RLCard 1.0.3 (1.11.0)

  • v3: 修复了任意调用 observe() 的错误 (1.8.0)

  • v2: 更新 RLCard 版本,修复错误,观测中的合法动作掩码替换了 infos 中的非法动作列表 (1.5.0)

  • v1: 更新 RLCard 版本,修复观测空间,采用新的智能体迭代方案,即所有智能体完成后再进行迭代 (1.4.0)

  • v0: 初始版本发布 (1.0.0)

用法

AEC

from pettingzoo.classic import texas_holdem_v4

env = texas_holdem_v4.env(render_mode="human")
env.reset(seed=42)

for agent in env.agent_iter():
    observation, reward, termination, truncation, info = env.last()

    if termination or truncation:
        action = None
    else:
        mask = observation["action_mask"]
        # this is where you would insert your policy
        action = env.action_space(agent).sample(mask)

    env.step(action)
env.close()

API

class pettingzoo.classic.rlcard_envs.texas_holdem.env(**kwargs)[source]
class pettingzoo.classic.rlcard_envs.texas_holdem.raw_env(num_players: int = 2, render_mode: str | None = None, screen_height: int | None = 1000)[source]
render()[source]

根据 self.render_mode 指定的方式渲染环境。

渲染模式可以是human以显示窗口。默认环境中的其他渲染模式包括返回 numpy 数组并受经典环境之外所有环境支持的‘rgb_array’,以及返回打印字符串(特定于经典环境)的‘ansi’