问题8 登录系统: - node:sqlite 账号存储(scrypt 哈希 + HMAC 签名 token),preset admin 改为 e2hang/evan1115 - /api/auth/register|login|me,me 返回 room 供重联 - 网关拦截 create/join 需登录(401),列表保持开放 踢人逻辑修正(问题2 延伸): - kickMove 真正释放座位(folded=false, name=null)而非锁死 - war/mill 去掉永久封禁语义 管理员越权:管理员 token 可删任意房间、踢任意房间内的人 单房间约束(用户新需求): - 同一用户同时只能在一个房间,create/join 他房返回 409 - 踢人后若房间仅剩踢人者则自动解散并释放其记录(修复 2 人局踢光对手后被困 409) - 陈旧房间记录兜底清理 UI 清理:移除"改名"按钮与"你的名字"输入框;删除房间按钮仅房主/管理员可见 docs: 新增 12-auth-kick-single-room.md 汇总本会话全部需求/根因/修复/边界测试 Co-Authored-By: Claude (CodeBuddy) <noreply@codebuddy.ai>
1.5 KiB
1.5 KiB
问题 10:每人筹码区增加“总已下”(累计每次下注)
现象 / 需求
在牌桌每个座位(玩家筹码区)增加一项 “本手总已下”(totalBetThisHand), 即该玩家在这一手里面累计投入底池的筹码总和(盲注 + 每次跟注/加注),并展示出来。
现状
HoldemPlayer.totalBetThisHand字段已存在(holdem.ts:58),且在下注时实时累加 (callMove/raiseMove/postBlind都更新它)。- 但 UI 没显示它:
HoldemBoard只渲染了筹码 {stack}与下 {betThisRound}(HoldemBoard.tsx:149-150),betThisRound是“本街”已下,totalBetThisHand是“本手”总已下,二者不同。
拟采用方案
- UI 在座位信息里加一行:
总下 {p.totalBetThisHand}(仅当> 0时显示,与下 {betThisRound}并列)。 - 可选:在“底池”区也显示“本手累计底池”=
pot(已有)。 - 语义区分清楚:
betThisRound:本街(flop/turn/river/preflop)已下,每街重置。totalBetThisHand:整手累计,发牌时重置(startHandSetup里p.totalBetThisHand = 0)。
- 无需改 engine(字段和累加都已有且正确),纯 UI 展示。
验证
- 联机手测:preflop 跟注 20 + flop 加注到 60 → 该座位显示
总下 80(20+60),下 60。 - 单测:确认
totalBetThisHand在callMove/raiseMove里累加正确(已有buildPots间接依赖,补一条直接断言)。