二七王文档:同步 design 流程/协议,新增合规核对
design.md - 修正选主/埋牌顺序笔误(确认「先选主后埋牌」) - 投降改为选主阶段与选主互斥的选择(不选主/不埋牌直接结算),算奖用庄家36张、无连对链 - 70分暗牌改为「庄家摸牌之前、向所有玩家亮3秒」 - 选主阶段前端显示每花色对数、70分并列投降按钮 - 新增 §12「完整牌局游玩流程」(含大局与阶段速览) packet_protocol.md(随代码如实同步) - 结算 aset/seatlist 新结构(multiple=基础子数、upgrade 判定倍率、bangwang/climb、 chongguan/wang/naward/grade_aw);shangzhuang bottomcards 按70分门控 + ancard3s - maipai/PushCards 亮牌 liangpai;chupai info/baozhu 按查牌门控;新增 mingpai 收发包 - step 枚举去掉废弃的投降4;删除 Surrender 重连视图 docs/compliance/(新增) - 00 初步不一致清单、01 design 合规逐节核对(含整改进度与 roomtype 位串约定) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -30,6 +30,7 @@
|
||||
9. [牌局查看模式](#9-牌局查看模式)
|
||||
10. [房间设置选项](#10-房间设置选项)
|
||||
11. [牌局交互提示](#11-牌局交互提示)
|
||||
12. [完整牌局游玩流程](#12-完整牌局游玩流程)
|
||||
|
||||
---
|
||||
|
||||
@@ -99,12 +100,16 @@
|
||||
- **暂定庄家必须叫分,不能"不叫"**:叫分从暂定庄家开始,他必须报出一个 5 ~ 70 之间的具体分数,不存在"暂定庄家弃权、三家都不叫"这种情况;起始叫分确定之后,后面的玩家才可以选择"叫出更低的分数"或"不叫"。
|
||||
- 若某玩家直接叫出 5 分,则无人能再压过,立即确定为庄家。
|
||||
- 若一家叫分后,另外两家都选择"不叫",则该叫分玩家成为本局庄家。
|
||||
3. 庄家确定后可以查看暗牌(只有庄家可见),将 8 张暗牌摸到手上,同时从手牌中选出 8 张牌重新扣下("埋牌"),作为"底牌",供最后判断"扣底"使用。
|
||||
4. **若叫分为 70 分**:埋牌完成后,庄家必须立即在"投降"与"打牌"之间二选一(埋牌步骤本身不受这个选择影响,两种情况都要先正常埋牌):
|
||||
- **选择投降**:不再进行下面的选主牌步骤,本局直接结束,按 7.1 节"70 分坐庄 · 投降"的固定结果结算(基础子数 1 个,庄家直接输)。
|
||||
- **选择打牌**:进入下一步,正常选主牌花色、开始出牌,按 7.1 / 7.2 节"70 分坐庄 · 打牌"的完整判定流程结算。
|
||||
- 叫分低于 70 分时没有这个分支,直接进入下一步。
|
||||
5. 庄家选定一个花色作为本局主牌(见第 3 节)。
|
||||
3. 庄家确定后摸暗牌(摸完后庄家共 36 张):
|
||||
- **非 70 分坐庄**:桌面 8 张暗牌**只有庄家可见**,庄家查看后摸入手牌。
|
||||
- **70 分坐庄**:在庄家摸暗牌**之前**,先把这 8 张暗牌**向所有玩家(含两个闲家)亮出 3 秒**,然后才由庄家把它们摸入手牌。
|
||||
4. **选主 / 投降(同一决策点,二选一,互斥)**:
|
||||
- **选主**:庄家在 4 个花色中选定一个作为本局主牌(见第 3 节)→ 进入下一步埋牌、随后出牌。
|
||||
- **投降**:仅当**叫分为 70 分**时,此决策点才额外提供"投降"选项;选择投降表示放弃本局,**直接结束、不再选主、不埋牌、不出牌**,按 7.1 节"70 分坐庄 · 投降"的固定结果结算(基础子数 1 个,庄家直接输;算奖仍照常,见 8.4 节)。选主与投降互斥——**选了花色就等于放弃投降、正常打牌;选了投降就不再选主**。
|
||||
- 叫分 < 70 分时没有投降选项,只能选主。
|
||||
- (70 分坐庄的 8 张暗牌向所有玩家亮 3 秒,发生在上一步"庄家摸暗牌之前",见步骤 3。)
|
||||
- **前端表现**:此阶段界面显示 4 个花色选主按钮,且**每个花色按钮上要显示该花色在庄家手中有多少对**(供庄家判断选哪门为主);70 分坐庄时并列再显示一个投降按钮。
|
||||
5. **埋牌**(仅"选主/打牌"路径):庄家从 36 张里选出 8 张牌重新扣下("埋牌"),作为"底牌",供最后判断"扣底"使用;埋牌后庄家保留 28 张。(**本局先选主、后埋牌**——庄家先定主牌花色,知道主副后再决定埋哪 8 张。)
|
||||
6. 坐庄轮换规则(决定下一局的"暂定庄家"):
|
||||
- 第一局的暂定庄家为最0号座位的玩家。
|
||||
- 若庄家本局获胜(庄赢),下一局暂定庄家仍为该玩家(连庄)。
|
||||
@@ -259,7 +264,7 @@
|
||||
3. **判定结果 → 子数倍率**:过庄 / 小光 / 大光 / 升级第几级,各自对应一个子数倍率,乘上第 1 层的基础子数,得到这一局的**子数结算结果 `X`**(前三层,即"算子",到此为止)。`X` 是庄家与**每一个**闲家之间"一对一"结算的基础金额:庄家赢(过庄 / 小光 / 大光)时,两个闲家各输给庄家 `X` 子;闲家赢(升级)时,庄家各输给两个闲家 `X` 子。
|
||||
4. **算奖 → 结算倍率**:第 8 节算出的"奖数"(8.1 常规算奖 + 8.2 傍王,各玩家分别求和)**是"持有奖数的这个人"从其余两名玩家那里各自多收一笔钱的独立结算线,作用对象是这个人本身,不是整场结算的统一系数**——某玩家 P 这一局总共有 `N_P` 奖,则**另外两名玩家(不分庄闲)都要各自额外付给 P:`X × N_P` 子**。三名玩家可能同时都持有各自的奖数,会产生最多 3 条互相独立的额外支付线,与第 1~3 层的基础输赢结算加总,才是每个人这一局的最终盈亏。算奖的计算过程本身不受叫分、过庄 / 小光 / 大光、升级影响(只看手牌结构),详见 8.3 节的完整举例。
|
||||
|
||||
> **例外**:70 分坐庄选择投降时不走第 1~3 层模型——直接固定基础子数 1 个、庄家输掉,不比较捡分、不判定过庄 / 小光 / 大光,见 7.1 末尾说明;但第 4 层算奖仍然照常叠加(庄家埋牌后的手牌结构依然存在,见 8.4 节)。
|
||||
> **例外**:70 分坐庄选择投降时不走第 1~3 层模型——直接固定基础子数 1 个、庄家输掉,不比较捡分、不判定过庄 / 小光 / 大光,见 7.1 末尾说明;但第 4 层算奖仍然照常叠加(投降是选主阶段的选择、未选主也未埋牌,按庄家"发牌 + 暗牌"共 36 张、无主牌花色计算,见 8.4 节)。
|
||||
|
||||
**查表索引**:本节按叫分档位给出了完整判定表,位置如下:
|
||||
|
||||
@@ -285,7 +290,7 @@
|
||||
- **选择投降**:基础子数按 **1 个**算,庄家直接输 1 个子(此时局面还没有真正出牌捡分,不经过 7.2 的大光 / 小光 / 升级判定,是一次性的固定结算)。
|
||||
- **选择打牌**:基础子数按 **2 个**算(与 65 分相同),之后**照样按 7.2 节的方法,用捡分总数判定大光 / 小光 / 过庄 / 升级**,不是不细分——完整判定表见 7.2.1。
|
||||
|
||||
70 分叫庄时,发牌时桌面留下的那 8 张暗牌(见第 4 节;不是埋牌埋下的底牌)需要向两个闲家亮出来 3 秒,投降和打牌两种情况都适用。
|
||||
70 分叫庄时,发牌时桌面留下的那 8 张暗牌(见第 4 节;不是埋牌埋下的底牌)需要**在庄家把它们摸入手牌之前、向所有玩家亮出 3 秒**,之后庄家才摸入手中;投降和打牌两种情况都适用(因为亮牌发生在选主 / 投降决策之前)。
|
||||
|
||||
### 7.2 捡分 vs 叫分:庄家的过庄 / 小光 / 大光,闲家的升级(常规算子)
|
||||
|
||||
@@ -522,7 +527,7 @@
|
||||
|
||||
**8.1 常规算奖只认庄家的身份,不看闲家的手牌是否达标**:即使某位闲家的手牌结构凑巧也满足 8.1 表里的条件(比如手里也有 3 张王),这份常规算奖也**不会**计入这位闲家——常规算奖从规则上就只针对庄家一人。闲家想要获得算奖,只能靠 8.3 傍王(且必须房间勾选了这条可选规则)。
|
||||
|
||||
**算奖依据的手牌快照时间点**:不管是 8.1(只看庄家)还是 8.3 傍王(庄闲都算),都按**静态初始手牌**计算——庄家是埋牌完成后的那一刻手牌,闲家是发牌完成后的那 28 张手牌;这个快照全程固定,不随之后的出牌、被吃、被打出而改变。
|
||||
**算奖依据的手牌快照时间点**:不管是 8.1(只看庄家)还是 8.3 傍王(庄闲都算),都按**静态初始手牌**计算——庄家是埋牌完成后的那一刻手牌(28 张),闲家是发牌完成后的那 28 张手牌;这个快照全程固定,不随之后的出牌、被吃、被打出而改变。**例外**:70 分投降局庄家未选主也未埋牌,其快照为"发牌 + 暗牌"共 36 张(无主牌花色),见 8.4 节。
|
||||
|
||||
**算奖(8.1 / 8.3)与亮牌(8.2)是两个互不干涉的独立概念**:算奖是结算阶段"该给多少额外结算分"的规则;亮牌只是出牌开始前"要不要向对手公开一部分手牌统计信息"的展示规则。两者各自有自己的触发条件,只是恰好都以庄家埋牌后的手牌结构为依据,因此部分门槛数值相同——但达成亮牌的条件不代表一定触发算奖,反之亦然,具体对照见 8.2 末尾的说明。
|
||||
|
||||
@@ -588,7 +593,7 @@
|
||||
以下三点已确认:
|
||||
|
||||
- **庄家倒庄(闲家达标升级)时,8.1 常规算奖仍然生效**:算奖只看庄家埋牌后的手牌结构,与本局谁输谁赢无关。
|
||||
- **70 分投降时,仍叠加算奖倍率**:投降只是跳过了第 1~3 层的叫分 / 捡分判定,庄家埋牌后的手牌结构依然存在,8.1(以及勾选了傍王时的 8.3)照常计算并叠加。
|
||||
- **70 分投降时,仍叠加算奖倍率**:投降只是跳过了第 1~3 层的叫分 / 捡分判定(此时 `X = 1`)。投降是选主阶段的选择,庄家**未选主、未埋牌**,故算奖按庄家"发牌 + 暗牌"共 36 张手牌计算——因没有选定主牌花色,**没有连对链**,只有三 / 四王、六~八个 7、六~八个 2 这些组合,以及(勾选傍王时)按王数的傍王奖计入;8.1(及勾选傍王时的 8.3)照常计算并叠加。
|
||||
- **算奖对象的身份限制会带进 `N` 的计算**:8.1 只算庄家、8.3 傍王勾选后才不分庄闲(见第 8 节开头说明),把这名玩家实际适用的分量求和,才是他自己的 `N`;"其余两人向他支付 `X × N`"这条支付规则本身不因身份而改变,但闲家的 `N` 从一开始就不可能包含 8.1 的分量。
|
||||
|
||||
---
|
||||
@@ -625,9 +630,62 @@
|
||||
|
||||
## 11. 牌局交互提示
|
||||
|
||||
- 选主阶段:4 个花色选主按钮上各显示"该花色在庄家手中的对子数"(供庄家判断选哪门为主);70 分坐庄时并列再显示一个投降按钮——选主与投降是同一决策点的互斥选择(见第 4 节)。
|
||||
- 首家出主牌时可以甩牌,甩牌的生效条件、跟牌规则、甩错惩罚详见 5.4 节。
|
||||
- 牌局结束需要亮出底牌。
|
||||
- 闲家在出牌时需要有 3 个提示选项:
|
||||
1. **踩**:提示对家"我能大过庄家"。
|
||||
2. **没分**:提示对家"我手上没分了"。
|
||||
3. **有分**:提示对家"我手上有分"。
|
||||
|
||||
---
|
||||
|
||||
## 12. 完整牌局游玩流程
|
||||
|
||||
本节把前面各节的规则串成一局(一个"小局")从头到尾的完整流程,供整体理解与实现参照。这里只给出**步骤与先后顺序**,每一步的具体细则以其对应章节为准(避免与细则重复而产生分歧)。
|
||||
|
||||
### 12.1 一个小局的完整流程
|
||||
|
||||
1. **开局准备**:房间按第 10 节的设置(局数、扣卡方式、傍王、爬坡、查牌)建好后开战。第一局的暂定庄家为 0 号座位;之后每局按 4.6 的轮庄规则确定暂定庄家。
|
||||
|
||||
2. **发牌**(第 2 节):92 张牌洗匀,三家各摸 28 张,剩余 8 张扣在桌面作为"暗牌"。
|
||||
|
||||
3. **叫分坐庄**(4.2):由暂定庄家起、按逆时针依次叫分。暂定庄家必叫(5~70 分、步进 5,不能"不叫");其后每家只能叫比当前更低的分,或选择"不叫";有人叫出 5 分即立即坐庄,或一家叫分后另外两家都"不叫"也即坐庄。叫分越低表示庄家对"压住闲家捡分"越有信心,对应的基础子数越高(第 7 节)。
|
||||
|
||||
4. **看暗牌**:庄家坐定后摸暗牌(摸完共 36 张)。非 70 分:8 张暗牌仅庄家可见。**70 分坐庄:庄家摸暗牌之前,先把这 8 张暗牌向所有玩家亮 3 秒,再由庄家摸入手牌**(4.4 / 第 4 节)。
|
||||
|
||||
5. **选主 / 投降(同一决策点,二选一,互斥)**(第 4 节):
|
||||
- **选主**:庄家选定一门花色为本局主牌(大王、小王、所有花色的 2、7 恒为主牌)→ 进入下一步埋牌。前端此阶段每个花色按钮上要显示该花色在庄家手中的对子数;70 分坐庄时并列显示投降按钮。
|
||||
- **投降**:仅 70 分坐庄才有此选项;选投降即放弃本局,**不选主、不埋牌、不出牌**,直接按 7.1"70 分 · 投降"结算(算奖仍按下方 8 计,但用庄家 36 张、无主牌花色)。选花色就等于放弃投降、正常打牌。
|
||||
- (70 分的 8 张暗牌亮 3 秒发生在步骤 4"摸暗牌之前"。)
|
||||
|
||||
6. **埋牌**(第 4 节,仅"选主/打牌"路径):庄家从 36 张里选 8 张重新扣下作为"底牌"(供最后"扣底"判断),保留 28 张。(**先选主、后埋牌**。)
|
||||
|
||||
7. **出牌对局**(第 5、6 节):
|
||||
- 第一轮固定由庄家先出;此后每轮由上一轮牌面最大的一方先出。
|
||||
- 首家出什么花色 / 牌型,其余两家按 5.1~5.3 跟牌(同花色不够时可用主牌"毙牌"抢权,或"垫牌"不争)。
|
||||
- 首家出主牌时可"甩牌"(5.4):一次性打出多组主牌组合;服务端按全场手牌判定"最大性",甩错则按 5.4.5 收回、只强制打出最小一张。副牌一律不能甩。
|
||||
- 每轮比大小定出胜者:闲家赢下的那一轮,牌面上的分牌(5→5 分、10→10 分、K→10 分)计入闲家捡分;庄家赢的轮分牌作废(6.1~6.2)。
|
||||
- 过程中:有玩家主牌出空需"报无主",可查牌模式下为全体展示他家主牌数量 / 对子结构(第 9 节);庄家手牌达到 8.2 的门槛时触发"亮牌"。
|
||||
|
||||
8. **末轮扣底**(6.3):所有手牌出完后,若最后一轮由闲家**用主牌**赢下,则庄家埋的 8 张底牌翻开,其中的分按闲家赢牌的牌型翻倍(单张 ×1、主对 ×2、N 连对 ×2N)后计入闲家捡分。
|
||||
|
||||
9. **小局结算**(第 7、8 节,两部分同时结算):
|
||||
- **算子**:闲家总捡分(含扣底)与庄家叫分比较 → 判定庄家的**过庄 / 小光 / 大光**,或闲家的**升级第几级** → 结合叫分档的基础子数,得到庄家与每个闲家"一对一"的结算子数 `X`(勾选爬坡则改用 7.3 的梯度与分段)。
|
||||
- **算奖**:以静态初始手牌(正常局:庄家埋牌后 28 张、闲家发牌后 28 张;**70 分投降局**:庄家用发牌+暗牌共 36 张、无主牌花色)计算奖数 `N` —— 常规算奖(8.1)**只计庄家**;勾选傍王(8.3)则庄闲每张王各算一奖。持有 `N` 奖的玩家从另外两人各多收 `X × N`(8.4)。
|
||||
- 以上两部分加总即各家本局盈亏;牌局结束需亮出底牌(第 11 节)。
|
||||
|
||||
10. **进入下一局**(4.6):庄家本局赢则连庄(暂定庄家仍是他);庄家输(闲家捡分达标 / 庄家投降)则暂定庄家顺延到其下家。回到第 2 步开新的一小局。
|
||||
|
||||
### 12.2 大局与结束
|
||||
|
||||
按房间设定的局数(6 局或 12 局,见第 10 节)打满全部小局后,进行大局结算(累计各家总分并记录战绩);若中途解散,则按当前累计分结算。
|
||||
|
||||
### 12.3 阶段速览
|
||||
|
||||
```
|
||||
建房(§10) → 发牌(§2) → 叫分坐庄(§4.2) → 看暗牌 → 选主(§3) → 埋牌(§4)
|
||||
→ [70分:投降/打牌决策(§4.4)] → 出牌对局(§5,§6.1-6.2) → 末轮扣底(§6.3)
|
||||
→ 小局结算=算子(§7)+算奖(§8) → 轮庄(§4.6) → 下一局 …… 打满局数 → 大局结算
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user