二七王:改写 design §5.3(拖拉机相邻关系),消除自相矛盾表述
规则复核时提出「主牌链上位置相邻的对子即成拖拉机、不限花色」,据此发现 §5.3 首句「**同一花色内**点数相邻的两个对子构成拖拉机」与本节紧接着给出的跨花色 主牌链(正7-副7-正2-副2-主A…)自相矛盾。代码实现的一直是那条链(跨花色), 首句表述是错的。 §5.3 拆成两段重写: - 副牌拖拉机:**必须同一花色**,链 A-K-Q-J-10-9-8-6-5(7、2 是固定主牌不入链, 故 6 与 8 相连;3、4 不在牌堆,5 是最小档);跨花色不构成连对。 - 主牌拖拉机:只有一条完整序列,**位置相邻即成拖拉机、不限花色**——正7对+副7对、 副7对+正2对、副2对+主A对、大王对+小王对都是合法两连对。 - 补充「同一档位的两个对子不相邻」:副7 在序列里只占一个位置,♥7对+♣7对 是两个 平级对子而非拖拉机,副2 同理。 §1 术语表给「正2/正7」加上口语别名「主2/主7」,避免复核时来回换词。 代码无需改动(实测 14 段链全通、跨花色通、同档位不通,与改写后的表述一致)。 补 17 条用例把改写后的每条钉在**拖拉机层**——此前只测到 is_continuous(两张牌 相不相邻),没测过「这几个对子能不能真的组成拖拉机」。变异检验:主牌链改成必须 同花色 / 同档位副7对算相邻 / 副牌 8-6 去掉同花色约束,分别转红 6、2、4 条。 另:复核给出的副牌链写作「…-6-5-3」,需要牌堆保留 3;但 92 = 28×3 + 8 只有在 3、4 都剔除时才成立(保留 3 则 92÷3 除不尽、三家发不平)。经确认为笔误,维持 design §2 现状,并就地补两条断言钉住「参与发牌的牌里 3 和 4 各 0 张、共 92 张」。 全套单测 523 → 540 项全绿。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -40,7 +40,7 @@
|
||||
| --- | --- |
|
||||
| 主牌 / 副牌 | 庄家选定的花色为"主牌",其余三个花色为"副牌";主牌大于副牌 |
|
||||
| 固定主牌 | 不论选择哪个花色为主,大王、小王、以及所有花色的"2""7"恒为主牌 |
|
||||
| 正2 / 正7 | 选定花色的"2""7",大于其余花色的"2""7" |
|
||||
| 正2 / 正7 | 选定花色的"2""7",大于其余花色的"2""7"(口语里也叫"主2""主7",本文档统一用"正2""正7")|
|
||||
| 副2 / 副7 | 非选定花色的"2""7" |
|
||||
| 暗牌 | 发牌时留在桌面的 8 张牌;庄家确认后可摸起查看,摸起后就不再是"暗牌",而是并入庄家手牌 |
|
||||
| 底牌 | 庄家"埋牌"时从手牌中选出重新扣下的 8 张牌;"暗牌"与"底牌"是两批不同的牌,不通用、不互换 |
|
||||
@@ -162,14 +162,30 @@
|
||||
|
||||
### 5.3 拖拉机定义与相邻关系
|
||||
|
||||
同一花色内点数相邻的两个(或以上)对子构成"拖拉机",如 K K Q Q 为两连对(两托),Q Q J J K K 为三连对(三托)。7 不可以和 6、8 组成拖拉机;6 和 8 可以组成拖拉机。
|
||||
**拖拉机 = 在各自的大小序列里「位置相邻」的两个(或以上)对子**,如 K K Q Q 为两连对(两托),K K Q Q J J 为三连对(三托)。副牌与主牌各有自己的序列,相邻规则不同,分开说:
|
||||
|
||||
拖拉机的相邻顺序(从大到小):
|
||||
#### 副牌拖拉机(非主花色)
|
||||
|
||||
**必须同一花色**,点数在下面这条序列里相邻:
|
||||
|
||||
```
|
||||
大王 - 小王 - 正7 - 副7 - 正2 - 副2 - A - K - Q - J - 10 - 9 - 8 - 6 - 5
|
||||
A - K - Q - J - 10 - 9 - 8 - 6 - 5
|
||||
```
|
||||
|
||||
序列里没有 7 和 2(它们是固定主牌,见第 3 节),所以 **7 不与 6、8 相连,而 6 与 8 相连**(中间隔的 7 已被抽走);同理 4、3 不在牌堆里(见第 2 节),5 是副牌序列的最小一档。**跨花色不构成连对**——♥K 对 + ♣Q 对不是拖拉机。
|
||||
|
||||
#### 主牌拖拉机(主花色 + 固定主牌)
|
||||
|
||||
主牌只有**一条**完整的大小序列(即第 3 节的主牌顺序):
|
||||
|
||||
```
|
||||
大王 - 小王 - 正7 - 副7 - 正2 - 副2 - 主A - 主K - 主Q - 主J - 主10 - 主9 - 主8 - 主6 - 主5
|
||||
```
|
||||
|
||||
只要在这条序列里**位置相邻**的对子,就构成拖拉机,**不限花色**。因此「正7 对 + 副7 对」「副7 对 + 正2 对」「副2 对 + 主A 对」「大王对 + 小王对」都是合法的两连对,尽管两个对子的花色不同。序列末段(主A 到 主5)都是**选定花色**的普通牌,其中同样是 6 与 8 相连、7 不入此段。
|
||||
|
||||
> **同一档位的两个对子不相邻**:「副7」在序列里只占**一个**位置,所以 ♥7 对 + ♣7 对是**两个平级的对子、不是拖拉机**;副2 同理。这与第 3 节「成对只认同花色同点数的两副」是同一条原则的两面——先按同花色同点数成对,再看这些对子在序列里的位置是否相邻。
|
||||
|
||||
### 5.4 甩牌详细规则
|
||||
|
||||
#### 5.4.1 基础定义
|
||||
|
||||
Reference in New Issue
Block a user