无限制德州扑克

../../../_images/classic_texas_holdem_no_limit.gif

这个环境属于经典环境。请先阅读该页面以获取一般信息。

导入

from pettingzoo.classic import texas_holdem_no_limit_v6

动作

离散

Parallel API

手动控制

智能体

agents= ['player_0', 'player_1']

智能体

2

动作形状

Discrete(5)

动作值

Discrete(5)

观察形状

(54,)

观察值

[0, 100]

无限制德州扑克是德州扑克的一种变体,其中每次加注的金额或加注次数没有限制。

我们的实现封装了 RLCard,您可以参考其文档获取更多详细信息。如果您在研究中使用此游戏,请引用他们的工作。

参数

texas_holdem_no_limit_v6.env(num_players=2)

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

德州扑克是一种涉及 2 名玩家和一副标准的 52 张牌的扑克游戏。游戏开始时,两名玩家各获得两张牌。下注后,会亮出三张公共牌,随后进行下一轮。在任何时候,玩家都可以弃牌,游戏将结束。获胜者将获得 +1 的奖励,输家将获得 -1 的奖励。这是标准限制版德州扑克的实现,有时被称为“限制德州扑克”。

我们的实现封装了 RLCard,您可以参考其文档获取更多详细信息。如果您在研究中使用此游戏,请引用他们的工作。

观察空间

观察是一个字典,包含一个 'observation' 元素,它是下面描述的通常的强化学习观察,以及一个 'action_mask',其中包含合法动作,在合法动作掩码部分进行了描述。

主要的观察空间与德州扑克类似。前 52 个条目表示当前玩家手牌和公共牌的并集。

索引

描述

0 - 12

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

[0, 1]

13 - 25

红桃
13: A, 14: 2, …, 25: K

[0, 1]

26 - 38

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

[0, 1]

39 - 51

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

[0, 1]

52

player_0 的筹码数量

[0, 100]

53

player_1 的筹码数量

[0, 100]

动作空间

动作 ID

动作

0

弃牌

1

过牌 & 跟注

2

加注半池

3

加注全池

4

全押

奖励

赢家

输家

+加注筹码/2

-加注筹码/2

版本历史

  • v6:升级到 RLCard 1.0.5,修复了 ACPC 的动作空间问题 (1.12.0)

  • v5:升级到 RLCard 1.0.4,修复了多于 2 名玩家时的奖励问题 (1.11.1)

  • 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_no_limit_v6

env = texas_holdem_no_limit_v6.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_no_limit.env(**kwargs)[source]
class pettingzoo.classic.rlcard_envs.texas_holdem_no_limit.raw_env(num_players: int = 2, render_mode: str | None = None, screen_height: int | None =1000)[source]