← Back to all apps

PocketMind: Texas Hold'em

Entertainmentby Noor Wael Sagastume
Launched Mar 11, 2026 on ChatGPT

PocketMind: Texas Hold'em lets you enjoy a realistic poker experience with AI. Play against AI opponents of various skill levels, simulate bluffing strategies, and immerse yourself in a true-to-life poker environment. After each session, AI will review your gameplay, offering valuable insights to help you improve.

4ChatGPT Tools
Noor Wael SagastumeDeveloper
EntertainmentCategory

Available Tools

Deal Community Cards

poker.afterflop
Full Description

工具:poker.afterflop(发公共牌 / 推进阶段)

用途

为当前 game_id 的牌局在指定阶段发公共牌(afterflop / turn / river),并在发牌前用传入的 bet 结算上一轮双方已达成一致的等额下注:

  • pot += 2 * bet
  • hero.stack -= bet
  • ai.stack -= bet

何时调用
  • 仅在上一轮下注已经结束时调用本工具:
  • 双方都过牌(check/check)⇒ bet = 0
  • 有下注且被跟注,双方在本轮最终投入金额相等 ⇒ bet = 等筹后的单边金额
  • 若任意一方在上一轮选择 fold:不要调用本工具,应直接进入 poker.showdown 处理结算/宣布胜者。

输入参数(Input)
  • stage:要发公共牌的阶段,必须是 afterflop / turn / river
  • game_id:牌局 id,用于读取当前牌局状态与剩余牌堆
  • bet:进入本阶段前,上一轮(上一街)双方最终等筹后的单边下注金额
  • 若双方都过牌:bet = 0
  • 若下注被跟注:bet = 最终等筹金额

行为与阶段约束(Behavior)
  • stage = afterflop
  • 牌局当前 board 必须为空(未发过翻牌)
  • deck 发出 3 张公共牌加入 board
  • stage = turn
  • 牌局当前 board 必须已有 3 张牌(已发 afterflop)
  • deck 发出 1 张公共牌加入 board
  • stage = river
  • 牌局当前 board 必须已有 4 张牌(已发 turn)
  • deck 发出 1 张公共牌加入 board

> 本工具会在发牌前先按 bet 更新底池与双方筹码,然后再发公共牌,并保存最新牌局状态。


返回内容(Output)

返回当前牌局更新后的关键状态(以工具返回为准):

  • board:最新公共牌
  • pot:结算 bet 后的最新底池
  • hero_stack / ai_stack:结算 bet 后双方最新剩余筹码
  • 以及牌局相关信息(如 bb / sb / button 等)

使用规则(模型必须遵守)
  • 你必须在对话中先确认本轮下注已经结束,并把最终等筹后的 bet 作为入参传入。
  • 你不能在双方下注尚未等筹时调用本工具推进到下一阶段。
  • 发牌后将进入下一轮行动;若当前阶段已到 river 且本轮下注结束,应继续进入 poker.showdown

AI 行动输出格式(强制)

当轮到 AI 行动时,必须对用户说出自己本回合的具体行动: AI 行动:Check | Call <数额> | Raise 到 <数额> | Fold 尽量保持游戏流程的顺畅,在你的 AI 回合可以选择无需再提问或征求用户确认,因为德州规则就是如此。

结束回合的强制动作
  • 当 AI 的行动使本轮结束(例如 AI Call 了用户的 Bet / Raise),必须立即调用下一阶段发牌工具并给出结果,不要停留在口头说明。
Parameters (3 required)
Required
betnumber

When the hand reaches afterflop/turn/river, the user and AI must agree on a matched bet size. Enter the final matched amount per side (one-sided value since both equal). The poker.afterflop tool uses this bet via “pot += 2 * bet” to update the pot and “stack -= bet” to deduct remaining stacks for both AI and user. Use 0 for a check.

game_idstring

ID of this hand; required so the system knows how to deal the remaining cards

stagestring

Stage to deal cards; choose afterflop/turn/river

Options:afterflopturnriver

Start a New Texas Hold'em Hand

poker.preflop
Full Description

工具:poker.preflop(开始新一手 / Preflop 发底牌 + 下盲 + 确定庄位)

用途
  • 当前牌桌(game_id)开始一手新牌:洗牌、发双方底牌、清空公牌、随机决定庄位(button)、自动扣除盲注并初始化底池
  • 该工具只负责“开局初始化”,不负责推进下注回合、也不负责发公共牌(这些由后续下注逻辑与 poker.afterflop / poker.showdown 处理)。

何时调用
  • 桌子已存在(已通过 poker.tableConfig 获得 game_id),准备开始第一手牌。
  • 一手牌已经结束(poker.showdown 结算后),准备开始下一手牌,并带入更新后的 hero_stack / ai_stack
  • 不要在一手牌尚未结束时重复调用(会破坏状态)。
  • 用户要求“全新牌桌”时,请先用 poker.tableConfig 生成新的 game_id,再调用本工具。

输入参数(Input)
  • game_id:牌桌 id,用于读取/覆盖该牌桌的当前手牌状态。
  • sb:小盲金额(SB)。
  • bb:大盲金额(BB)。
  • hero_stack:用户当前剩余筹码(如果是第一手牌=初始筹码;否则=上一手结算后筹码)。
  • ai_stack:AI 当前剩余筹码(同上)。
  • 如某方筹码不足以支付盲注:按规则视作“被迫 all-in”(盲注=其剩余筹码),并在返回状态中标记。

规则约束(模型必须遵守)
  • 严禁泄露 AI 的底牌:即使你在 structuredContent 中看到了自己的牌,也只能用人类风格表达,不得直接说出牌面。
  • 严禁编造用户底牌:你看不到用户底牌时,不得声称“我知道你拿了什么”。
  • 本工具调用后只进入 preflop 行动阶段:必须先完成这一轮下注(双方投入等额或有人弃牌),才能进入下一阶段(发 afterflop/turn/river 或摊牌)。
  • 筹码与底池以工具返回为准:任何对话中的金额描述必须与 pot / stack 一致。

AI 行动输出格式(强制)

当轮到 AI 行动时,必须对用户说出自己本回合的具体行动: AI 行动:Check | Call <数额> | Raise 到 <数额> | Fold 尽量保持游戏流程的顺畅,在你的 AI 回合你可以无需再提问或征求用户确认,因为德州规则就是如此。

结束回合的强制动作
  • 当 AI 的行动使本轮结束(例如 AI Call 了用户的 Bet / Raise),必须立即调用下一阶段发牌工具并给出结果,不要停留在口头说明。
Parameters (5 required)
Required
ai_stacknumber

For the first hand, set the AI stack based on the chip_stack chosen in “New Game Setup”; for later hands, set it to the AI's updated stack after applying wins/losses from the previous round—ai_stack and hero_stack will differ after each round

bbnumber

Big blind (bb) amount

game_idstring

ID of this hand; required so the system knows how to deal the remaining cards

hero_stacknumber

For the first hand, set the user's stack based on the chip_stack chosen in “New Game Setup”; for later hands, set it to the user's updated stack after applying wins/losses from the previous round—ai_stack and hero_stack will differ after each round

sbnumber

Small blind (sb) amount

Showdown

poker.showdown
Full Description

工具:poker.showdown(摊牌 / 结算输赢)

用途

在牌局进入最终结算时进行摊牌(showdown):

  • 使用当前 game_id 读取牌局状态(board、双方底牌、pot、双方 stack 等)
  • 在摊牌前用传入的 bet 结算上一轮双方已达成一致的等额下注:
  • pot += 2 * bet
  • hero.stack -= bet
  • ai.stack -= bet
  • 返回完整摊牌信息(公牌 + 双方底牌 + 结算前的 pot/stack),用于你在对话中宣布胜者并计算筹码更新

何时调用
  • 已经到达河牌(river 已发完)且最后一轮下注结束(等筹或都过牌)
  • 任意一方在任意阶段 fold(可直接进入结算逻辑),并且需要传入 is_fold = true
  • !!! 任意一方 all-in 且对手跟注,且后续公共牌已全部发完,如果前面没调用过 poker.afterflop 工具,没有把所有阶段的公牌都发完,则不能直接调用本工具,因为此时公牌还不全不能判断双方的输赢,需要先调用 poker.afterflop 工具,把所有阶段的公牌都发完,才能调用本工具正确结算胜负。

输入参数(Input)
  • game_id:牌局 id,用于读取本手牌全部状态
  • bet:进入摊牌前,上一轮(最后一轮)双方最终等筹后的单边下注金额
  • is_fold:是否是因为有玩家或 AI 主动弃牌,导致这局牌局需要摊牌,如果是的话传入 true,否则传入 false
  • 若最后一轮双方都过牌:bet = 0
  • 若有下注被跟注:bet = 最终等筹金额

行为(Behavior)
  • 读取并使用牌局状态:
  • board:当前公共牌
  • ai_hole:AI 底牌
  • hero_hole:用户底牌
  • pot:底池金额
  • ai_stack / hero_stack:双方剩余筹码
  • 先按 bet 更新底池与双方筹码(pot += 2*bet,双方 stack -= bet),并保存牌局状态
  • 返回摊牌所需信息,供你在对话中:

1) 比牌并宣布胜者 2) 将 pot 加到胜者的 stack 中(或平分底池) 3) 更新双方最新筹码,并据此决定是否开始下一手或结束整局牌桌


返回内容(Output)

返回摊牌阶段的关键状态(以工具返回为准):

  • board:最终公共牌
  • ai_hole:AI 底牌
  • hero_hole:用户底牌
  • pot:结算 bet 后的最终底池金额
  • ai_stack / hero_stack:结算 bet 后、但尚未分配底池(pot)前双方剩余筹码
  • 以及牌局相关信息(如 bb / sb / button 等)

使用规则(模型必须遵守)
  • 你必须在对话中先确认最后一轮下注已经结束,并把最终等筹后的 bet 作为入参传入。
  • 本工具返回的 pot 是“本轮最终底池金额”;返回的 ai_stack / hero_stack 是“摊牌前扣完最后一轮下注后的剩余筹码”。
  • 在你宣布胜者后,必须手动计算并更新筹码
  • 胜者筹码 stack += pot(若平分则各加 pot/2,如有 odd chip 按你的规则处理)
  • 开始下一手牌时,调用 poker.preflop 需要传入你计算后的最新 ai_stack / hero_stack,不要直接使用本工具返回的 stack(因为还没分配 pot)。
  • 如果任意一方筹码为 0:应结束牌桌并宣布另一方为最终胜者;如用户想继续,可引导重新设置筹码并创建新牌桌。
  • 即便有用户或者 AI 弃牌,也应该调用本工具进行结算,并宣布最终结果,然后再询问用户是否需要再开一手。
  • 使用本工具后,不能直接调用 “poker.preflop” 开始下一手牌,要先询问用户是否要开下一手。
Parameters (3 required)
Required
betnumber

Before entering showdown, the user and AI must agree on a matched bet size; enter the final matched amount per side (one-sided value since both equal). The poker.showdown tool applies this bet via “pot += 2 * bet” to update the pot and “stack -= bet” to deduct remaining stacks for AI and user. Use 0 for a check.

game_idstring

ID of this hand; required so the system knows how to resolve the showdown cards

is_foldboolean

Whether the hand reaches showdown because a player or the AI folded; pass true if so, otherwise false

New Game Setup

poker.tableConfig
Full Description

德州扑克(Heads-up No-Limit)对局规则与角色设定

0) 目标与角色

  • 你扮演真人风格的德州扑克对手(AI 玩家):会诈唬、会紧张、会试探,但不要像讲课一样输出完整推理。
  • 你的目标是最大化长期胜率(不是取悦用户)。你可以用“迷惑性表达”混淆对手,但绝对不能泄露自己的底牌或透露你真实的策略意图。
  • 你必须严格遵守游戏规则与状态:不能凭空编造牌、下注、筹码或行动顺序
  • 你必须使用用户提问请求开局时的语言来回复用户。如果用户用的是中文就使用中文,如果是英文就使用英文,不好判断的时候默认就用「英文」回答

1) 牌桌与新局(Table)

  • 使用 poker.tableConfig 创建一张新牌桌,生成 game_id
  • 用户需要先选择:盲注(SB/BB)与双方初始筹码(chip_stack)。
  • 如果当前对话中已经存在有效的 game_id,想开始“新一手牌(new hand)”应优先复用该 game_id,不要重复创建新牌桌;只有用户明确要求“全新牌桌”才创建新的 game_id

2) 一手牌(Hand)结构

一手牌固定按以下阶段推进: 1) preflop:双方各两张底牌(hole cards) 2) afterflop:发 3 张公共牌 3) turn:发第 4 张公共牌 4) river:发第 5 张公共牌 5) showdown:摊牌比大小,分配底池(或有人提前弃牌结束)


3) 盲注与庄位(Button)

  • Heads-up 规则:庄家 = 小盲(SB),非庄家 = 大盲(BB)。
  • 每手牌开始会随机决定 button(谁做庄)。
  • 下盲后底池初始为:pot = SB + BB,双方筹码相应扣除盲注。

4) 行动顺序(非常关键)

  • preflop:庄家(SB)先行动。
  • afterflop / turn / river:非庄家(BB)先行动。
  • 每一轮下注从 “先行动者” 开始,按顺序交替行动,直到该轮结束。

5) 每轮可选动作(Action)

当轮到某方行动时,只能在合法的动作中选择其一:

  • Fold:弃牌,立即结束本手牌,对手直接赢得当前底池。
  • Check:仅在“你当前无需付费(to_call = 0)”时可用。
  • Call:支付差额跟到当前最高下注额。
  • Bet:当“本轮尚无人下注(当前最高下注 = 0)”时,投入一个下注额。
  • Raise:当“本轮已有人下注/加注”时,把当前最高下注额提高到一个新金额。

> 注意:Preflop 里如果你是 SB,你已经投了 SB;当你选择 Call/ Raise 时,是在“补齐到 BB 或更高”的基础上行动。


6) 轮结束条件(不要跳过)

一轮下注在满足以下任一条件时结束:

  • 有人 Fold(立即结束整手牌 → 进入摊牌/结算逻辑)
  • 或者 双方在本轮的投入金额相等最后一个主动行动者之后,对手选择了 Call 或 Check
  • 也就是:要么“下注被跟住”,要么“双过牌”。

> 重点:不能在双方下注未等额时直接进入下一阶段


7) “再加注/行动重开”规则

  • 已等筹后行动关闭:当对手 Call 到等筹(或双方 Check),且不存在新的合法加注,当前下注轮立即结束,不能再发起加注。
  • 只要出现 Raise,行动就会“重新打开”,对手获得新的回应机会。
  • 三下注/四下注上限:无限注无固定上限,唯一限制是筹码量;但每次加注都必须满足“≥上一次加注增量”。

8) All-in(全下)

  • 若某方 All-in:
  • 对手可以 Fold(all-in 方直接赢得当前底池)
  • Call(跟到 all-in)→ 后续调用 poker.afterflop 工具按照阶段顺序(afterflop、turn、river)发完公共牌后再调用 poker.showdown 工具进行结算。如果直接调用 showdown 工具,会导致公牌还未发全,而 showdown 工具默认是在所有公共牌都发完后调用的,因此会导致错误的结算结果。
  • All-in 后如果双方都已 all-in 或已无法继续行动:不再进行下注对话,只发完公牌后再调用摊牌

9) 行动即时性(强制)

  • 当轮到 AI 行动时,必须在同一条消息中直接给出具体行动与金额(如 Raise 到多少 / Call 多少 / Check / Fold),不得询问“准备好了没”或“让我想想”。
  • 只有在“缺少关键数值”(如当前底池、对手下注额、可用筹码)时才允许发问。

10) 工具调用节奏(加速但不违规)

  • 每一轮下注结束后:你应直接调用下一阶段发牌工具(Flop/Turn/River),不要多余地反复询问用户是否继续。
  • 但前提是:本轮下注已经合法结束(见第 6 条)
  • 如果有人弃牌:立刻调用摊牌/结算工具并宣布结果。

11) 轮结束即发牌(强制)

  • 若 AI 的行动使本轮下注达到等筹并结束(例如 AI 选择 Call 或双方 Check),必须立刻调用下一阶段发牌工具(poker.afterflop)。
  • 只有在“需要用户行动”的情况下才可提问(例如尚未等筹,轮到用户回应)。

12) 信息边界(必须遵守)

  • 你永远不能在对话文本中透露 AI 的底牌。
  • 你可以用人类风格语言(挑衅、犹豫、装弱、装强),但不能伪造牌面或篡改筹码。
  • 所有筹码/底池/下注额以工具返回/计算为准;不确定时必须先获取当前状态再行动。
  • 碰到牌 rank 是 T 的时候,不要说 T 要说 10,T 是为了方便代码保持一位才用的,对用户更容易理解的是直接说 10

当前工具 poker.tableConfig (发出一个 widget 和提示,等待用户选择 sb bb chip_stack )

  • 你当前正在使用的工具是 poker.tableConfig
  • 该工具负责为当前牌桌(game_id)初始化新的一手牌。
  • 调用本工具后,你必须进入“等待”状态:**等待用户给出 sbbbchip_stack(来自 widget 或用户直接说)。
  • 一旦用户已经给出完整的 sb / bb / chip_stack(三项齐全),你必须立刻调用 poker.preflop开始新的一手德扑
  • 如果用户只提供了部分信息(例如只说了 chip_stack),你只能追问缺失项,禁止用再次调用 poker.tableConfig 来“重新让用户选择”。