From 93449c8a92f580c8e7a6e36372ec43b3a5f5fc8b Mon Sep 17 00:00:00 2001 From: Joywayer Date: Sun, 5 Jul 2026 06:16:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=8C=E4=B8=83=E7=8E=8B=E8=A7=84=E5=88=99?= =?UTF-8?q?=EF=BC=9A=E6=8C=89=E4=BB=A3=E7=A0=81=E5=AE=9E=E9=99=85=E8=A1=8C?= =?UTF-8?q?=E4=B8=BA=E8=A1=A5=E5=85=A8=20=C2=A75.2=20=E6=8B=96=E6=8B=89?= =?UTF-8?q?=E6=9C=BA=E8=B7=9F=E7=89=8C=E7=9A=84=E5=BC=BA=E5=88=B6=E9=99=8D?= =?UTF-8?q?=E7=BA=A7=E5=B1=82=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit design.md §5.2 原本只描述"两连对"最简情形,缺少 3 连对及以上的 强制层级。按 class.arith.js get_followcard 的实际实现补写为完整 优先级表:同长拖 > 更短拖拆凑 > 对子够 > 对子不够全出+补 > 单张补; 并修正对子行"同花不足两张必出现有同花"的措辞。§5.4.4 甩牌跟牌 加一句交叉引用,点明与正常跟牌共用同一层级原则。 Co-Authored-By: Claude Opus 4.8 (1M context) --- server/games/erqiwang/docs/design/design.md | 22 +++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/server/games/erqiwang/docs/design/design.md b/server/games/erqiwang/docs/design/design.md index 4b42c9c..52f7537 100644 --- a/server/games/erqiwang/docs/design/design.md +++ b/server/games/erqiwang/docs/design/design.md @@ -129,11 +129,25 @@ ### 5.2 按牌型跟牌 +跟牌的总原则:**在本轮首家花色内,尽量凑出与首家相同的牌型结构;能凑出的高规格部分必须优先打出,凑不齐的部分才用低规格牌补足。** 服务端按此层级精确计算每名跟牌者的"必出牌"与"可选牌",玩家无法跳过更高规格的强制部分。 + | 首家牌型 | 跟牌要求 | | --- | --- | -| 单张 | 跟同花色任意单张;不够则任意牌补齐 | -| 对子 | 必须跟同花色对子;没有对子则用两张同花色单牌;同花色不足两张则任意牌补齐 | -| 拖拉机(连续对子) | 有同花色拖拉机必须跟出拖拉机;没有拖拉机但有两对不连续的对子,也必须出这两对;都没有则优先同花色任意牌补齐 | +| 单张 | 跟同花色任意单张;同花色缺门则任意牌补齐 | +| 对子 | 有同花色对子必须打出对子;没有对子则打两张同花色单牌;同花色牌不足两张时,现有的同花色牌必须打出、不足部分任意补齐 | +| 拖拉机(N 连对) | 见下方「拖拉机跟牌的强制层级」 | + +#### 拖拉机跟牌的强制层级(同花色牌足够时) + +首家出 N 连对拖拉机,跟牌者手中该花色牌数量 ≥ 首家张数时,按以下优先级**从高到低**确定必出部分,高一级能凑出就必须先凑,不允许跳过: + +1. **有同长(N 连对)的同花色拖拉机** → 必须打出该拖拉机;若手中有多组等长拖拉机,可任选其一打出。 +2. **没有 N 连对,但持有更短的同花色拖拉机(仅 3 连对及以上首家才会走到这一步)** → 必须先拆出手中能凑到的**最长**拖拉机作为强制部分,再用次长拖拉机 / 对子 / 单张继续补足到相同张数——即"能凑多长的拖拉机,就必须先凑多长",不允许放着更长的拖拉机不出而只出零散对子。 +3. **没有任何同花色拖拉机,但对子数量足够(对子数 × 2 ≥ 首家张数)** → 用现有对子凑够张数打出(多余的对子可自选保留)。 +4. **对子数量不够(对子数 × 2 < 首家张数)** → 手中现有的同花色对子**全部**必须打出,剩余缺口用同花色单张补齐。 +5. **完全没有同花色对子** → 用同花色单张随意补齐张数。 + +同花色牌**不足**首家张数时(含完全缺门):现有的同花色牌全部必出,缺口部分可任意补其他牌;若完全缺门则整手任意出,可选择垫牌或用主牌毙牌(见下)。 毙牌(缺门时改用主牌顶替首家副牌)的特殊情况: @@ -186,7 +200,7 @@ 甩牌一旦被判定合法(见 5.4.2:服务端已确认两名闲家都不持有能盖压这套组合任何一部分的主牌),闲家就不可能再用主牌把它压下去——"能不能盖压"在甩牌提交的那一刻就已经由服务端裁定完毕,不会走到"闲家出牌盖压"这一步。 -甩牌本身可能是单张、对子、多个不同长度拖拉机自由混搭的复杂组合(见 5.4.3)。闲家跟牌时,**要把这套甩牌拆解成一个个独立的分量,逐个分量分别匹配**,而不是把整套甩牌当成一个笼统的整体来对待: +甩牌本身可能是单张、对子、多个不同长度拖拉机自由混搭的复杂组合(见 5.4.3)。闲家跟牌沿用 5.2「拖拉机跟牌的强制层级」同一原则(高规格能凑就必须先凑:拖拉机 → 对子 → 单张),只是这里要把整套甩牌**拆解成一个个独立的分量,逐个分量分别匹配**,而不是把整套甩牌当成一个笼统的整体来对待: 1. **每一组拖拉机分量**:闲家手中若有同等连对数的主拖拉机,必须优先拆出来跟这一组;没有同等连对数的拖拉机,退而求其次用同等张数的主对子顶替;主对子也不够,才能拆主单张顶替。甩牌里若有多组不同长度的拖拉机,逐组分别按此规则处理。 2. **每一组单独的对子分量**:闲家手中若有主对子,必须优先拆出来跟这一组;没有主对子,才能拆主单张顶替。