德州扑克¶

此环境是经典环境的一部分。请先阅读该页面以获取一般信息。
导入 |
|
---|---|
动作 |
离散 |
并行 API |
是 |
手动控制 |
否 |
智能体 |
|
智能体 |
2 |
动作空间形状 |
离散(4) |
动作值 |
离散(4) |
观测空间形状 |
(72,) |
观测值 |
[0, 1] |
参数¶
texas_holdem_v4.env(num_players=2)
num_players
: 设置游戏中的玩家数量。最少为 2 名玩家。
观测空间¶
观测是一个字典,其中包含一个'observation'
元素(即下面描述的常规强化学习观测)和一个'action_mask'
元素(用于存储合法动作,详见合法动作掩码部分)。
主要观测空间是一个包含 72 个布尔整型的向量。前 52 个条目表示当前玩家的手牌和任何公共牌,如下所示
索引 |
描述 |
---|---|
0 - 12 |
黑桃 |
13 - 25 |
红心 |
26 - 38 |
方块 |
39 - 51 |
梅花 |
52 - 56 |
第 1 轮下注筹码 |
57 - 61 |
第 2 轮下注筹码 |
62 - 66 |
第 3 轮下注筹码 |
67 - 71 |
第 4 轮下注筹码 |
合法动作掩码¶
当前智能体的合法动作位于字典观测的action_mask
元素中。action_mask
是一个二进制向量,向量中的每个索引表示该动作是否合法。对于非当前轮次的智能体,action_mask
将全为零。执行非法动作将结束游戏,非法行动的智能体获得 -1 奖励,所有其他智能体获得 0 奖励。
动作空间¶
动作 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()