第 1 局会在底部提示条逐手解释「这一手为什么是这个结果」,打完一局自动关闭。
核心玩法
- 双方各 12 格生命,归零者输。每张牌打几格见下面各牌组说明(V2 里每张牌都是 1 格)。
- 同时归零算平局。到回合上限(12 回合)仍未分胜负则按剩余格数判定。
- 每回合分两个阶段:准备期 → 结算。
- 准备期:双方手牌都是明牌。你把手牌按顺序排进「我方牌区」,这就是本回合的出牌顺序。
- 顺序自由调整:点击手牌排入牌区 → 拖动牌,或用牌上的 ‹ › 微调位置 → 点击牌区的牌可以退回手牌。
- 点「确定出牌」(或按 空格)锁定顺序,锁定后双方都不能再改。
- 结算:按双方的顺序,第 1 手、第 2 手……依次翻牌,逐手产生掉血、格挡、回血效果。
- 每一手双方同时结算(没有先手)。蓄气加成按本手开始时的状态算,所以互砍时两边都能吃到自己的蓄力。
核心:每一手都是一次猜拳
每一手双方各翻一张牌,格挡只挡「同一手」打过来的那一击,不累积。
所以第 2 手架的格挡挡不住第 3 手的攻击 —— 你得猜对手把攻击放在第几手。
| 敌方 攻击(1格) | 敌方 蓄力攻(2格) | 敌方 格挡 |
| 我方 攻击(1格) | 双方各 -1 格 | 我方 -2 格 | 被挡下 1 格,溢出 0 |
| 我方 格挡 | 完全挡下 | 挡 1 漏 1 | 无事发生 |
| 我方 蓄气 | 白挨 1 格 | 白挨 2 格,蓄气被打散 | 各自铺垫 |
- 用格挡去撞对手的攻击,你就赚一手;撞不到就是白费一张牌。
- 用攻击去打对手的格挡,伤害全被吃掉。
- 双方都出攻击 = 换血,谁先把对面打死谁赢。
- 敌方的顺序在准备期完全保密,而且是洗牌随机排的 —— 背口诀没用,只能读手牌、算概率。
发牌(没有牌库,每回合重新发一组)
- 每回合双方拿到完全相同的一组 6 张牌 —— 抽牌运气这个变量被彻底拿掉。
- 保底:1 张攻击 + 1 张格挡 + 1 张蓄气,另外 3 张从牌种池里随机抽。
- 所以每回合手上必然有攻、有挡、有蓄,不会出现「一张攻击都没有」的死回合。
- 发 6 张,只能排 5 张 —— 差额那 1 张就是你本回合要弃的牌,弃哪张是第一个决策。
- 手牌会按牌种自动排序(攻 → 挡 → 蓄),方便一眼看清构成。
- 没有牌堆、没有弃牌堆,打完的牌直接作废,下一回合重发。
三种牌(单位是"格",血一共 12 格)
- 攻击 — 造成 1 格伤害。被格挡完全挡下(1 挡 1,溢出 0)。
- 格挡 — 挡下同一手的 1 格(不累积,只挡自己那一手)。
- 蓄气 — 把下一次攻击从 1 格强化到 2 格(封顶,蓄几层都一样疼)。
蓄气是"跨手"的铺垫:出蓄气那一手等于空过,会白挨一下;但受击会打散一层蓄气。
蓄力一击撞上格挡是 2 挡 1 → 漏 1 格,这就是「蓄气克格挡」。
一回合两个决策:弃哪 1 张 → 剩下 5 张怎么排序。
V2 牌组:三张牌是真正的石头剪刀布
V1 的三张牌其实不是猜拳:蓄气那一手什么都不做,要等到下一手才兑现
("蓄气克格挡"是跨手关系,第三条边不在同一个决策点上);而格挡撞上攻击只是
"两边都没事",没有产生任何转移 —— 抵消型防守永远不产生正收益,最后一定被攻击支配。
真引擎实测(node tools/rps-audit.js):攻击优先 72% / 格挡优先 23%,
极差 49 个百分点,循环不成立。
V2 把三条边全部压回同一手,并且让每一次"克"都真的掉血。
| 敌方 斩击 | 敌方 盾反 | 敌方 破甲 |
| 我方 斩击 | 互砍,各 −1 | 被挡下并遭反击,我方 −1 | 打断其蓄力,敌方 −1 |
| 我方 盾反 | 挡下并反击,敌方 −1 | 两边都在举盾 | 被穿透,我方 −1 |
| 我方 破甲 | 蓄力被打断,我方 −1 | 穿透格挡,敌方 −1 | 双方重击对撞,各 −1 |
- 斩击 — 快。造成 1 格伤害;对手本手若在蓄力,直接打断。
- 盾反 — 快。挡下本手攻击,并反击 1 格(和 V1 最大的区别:从"抵消"改成"反制")。
- 破甲 — 慢。无视格挡造成 1 格伤害;但本手若被「斩击」命中,蓄力被打断、这一手落空。
- 三张牌都在同一手内结算,赢一手就真的让对方掉 1 格 —— 没有"空过"的牌,也没有占优的牌。
- 发牌同样是双方相同的一组 6 张:保底 1 斩 + 1 盾反 + 1 破甲,另外 3 张从 4/4/4 的均匀池子里抽。
- 均衡打法是三张牌各约 1/3(±1 对称猜拳的纳什混合),谁被读出规律谁就输。
快捷键
- 1–9 把第 n 叠牌出一张(同种的牌在手上合成一叠显示,每按一次出一张)
- A 全部排入(自动补满)· 退格 清空
- 空格 / 回车 确定出牌 · Esc 关闭面板