Estazz commited on
Commit
ca8bcad
·
verified ·
1 Parent(s): a53c524

Update m_prompt.txt

Browse files
Files changed (1) hide show
  1. m_prompt.txt +91 -15
m_prompt.txt CHANGED
@@ -25,10 +25,66 @@
25
 
26
  ## 核心参照资源
27
 
28
- 本 prompt 配套以下参照资源生成请充分利用
29
- 1. **通用语法规范**:`麻将游戏mGDL通用语法_v1.3.txt` - 定义 mGDL 语法规则(v1.3 最新版)
30
- 2. **完整示例**:`四川血战到底_mGDL_v1.3.txt` (标准倍数制), `疯狂血流_mGDL_v1.3.txt` (疯狂倍数制), `贵州捉鸡麻将_mGDL_v1.3.txt` (混合制), `广东100张_mGDL_v1.3.txt` (高级机制:马/包/鬼) - 展示完整 mGDL 的详细程度标准
31
- 3. **要求**:你的输出必须在语法上符合规范1(v1.3),在详细度上不低于示例2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
 
33
  > ⚠️ **注意**:以下"mGDL 生成硬规范"仅约束第3部分(mGDL描述)的语法与语义,不影响其他部分的自由生成。其他部分仍需遵守通用清晰性、确定性、无模糊词等基本要求。
34
 
@@ -97,21 +153,21 @@
97
  - 任何涉及牌变动的行为必须指定 `(transfer_path from: X to: Y)`
98
  - `pass` 动作必须显式声明为 `(transfer_path none)`
99
 
100
- 11. **手牌恒定不变量(Hand Size Invariant)**:
101
- - 除起手阶段和胡牌结算瞬间外,**每位玩家在打出牌后必须严格保持手牌数为基准值**
102
- - 闲家13 张
103
- - 庄家:14(仅在未打出首张时允许;一旦出牌即降 13
 
104
  - 每个 `action`(吃/碰/杠/自摸/打牌)必须显式说明其对手牌数量的净影响,并确保后续通过 `discard` 或 `kong_draw` 等操作恢复至基准值。
105
- - 在 `(invariants)` 中必须包含如下断言(示例)
106
  ```lisp
107
  (invariants
108
- ; 行牌阶段:打出后手牌恒为13张(庄家出牌后也视为13张)
109
  (hand_size_stable (forall p (-> (in_phase play) (= (zone hand:p) 13))))
110
- ; 起手阶段例外庄家=14,闲家=13
111
- (initial_hand_valid (= (zone hand:A1) 14) (= (zone hand:A2) 13) (= (zone hand:A3) 13) (= (zone hand:A4) 13))
112
  )
113
  ```
114
- - **严禁**出现“吃后手牌=15”、“碰后不打”等违反手牌守恒的描述。
115
 
116
  ### 番数与倍数核心区分(v1.3 重点强调)
117
 
@@ -676,6 +732,10 @@ d. 详细展开:表格下方必须对每个机制进行详细说明:
676
  - 使用示例(至少1个具体场景)
677
  e. 禁止模糊表述:严禁使用"某些"、"部分"、"可能"等模糊词汇
678
  f. 后续引用标记:每个机制说明的末尾必须标注"→ 详见【第3节-游戏流程-[阶段名]】"
 
 
 
 
679
 
680
  2. 基础规则描述
681
  a. 牌组构成:
@@ -967,7 +1027,18 @@ c. 番型计分:详细列出番型与对应分值
967
  - 赖子使用上限验证 → [PASS/FAIL]
968
  - 连庄次数上限验证 → [PASS/FAIL]
969
 
970
- ### 14) **最终验收**
 
 
 
 
 
 
 
 
 
 
 
971
 
972
  **核心验收项**:
973
  - 模块完整性:[PASS/FAIL]
@@ -976,6 +1047,7 @@ c. 番型计分:详细列出番型与对应分值
976
  - 番型可达性:[PASS/FAIL]
977
  - 无模糊表述:[PASS/FAIL]
978
  - 自检报告完整:[PASS/FAIL]
 
979
 
980
  **最终结论**:[PASS/FAIL]
981
 
@@ -985,7 +1057,7 @@ c. 番型计分:详细列出番型与对应分值
985
 
986
  **审核人**:[AI系统自审]
987
  **审核时间**:[YYYY-MM-DD HH:MM:SS]
988
- **审核版本**:mGDL v1.2
989
 
990
  </details>
991
 
@@ -1042,3 +1114,7 @@ c. 番型计分:详细列出番型与对应分值
1042
  - 严禁在行牌阶段结束时(即未处于胡牌瞬间)出现手牌 ≠ 13 张的情况(庄家出牌后同理)。
1043
  - 严禁 `action` 定义中缺少 `requires_discard` 或未说明手牌变化。
1044
  - 严禁自然语言描述中省略“吃/碰/杠后需打牌”这一关键步骤。
 
 
 
 
 
25
 
26
  ## 核心参照资源
27
 
28
+ 本 prompt 配套以下 16 个经过严格验证的 mGDL v1.3 标准示例涵盖了主流麻将机制。**在设计新玩法,必须遵循mGDL v1.3规范,并优先参考同类机制的现有文件**
29
+
30
+ 1. **通用语法规范**:`麻将游戏mGDL通用语法_v1.3.txt`
31
+
32
+ 2. **双源参考库 (Dual Source Reference)**:
33
+
34
+ **核心原则:设计依从 .md (主),语法参考 .txt (辅)**
35
+ *当 .md 与 .txt 规则不一致时,绝对以 .md 为准。*
36
+
37
+ * **血战/血流体系 (Multiplier Mode)**
38
+ * [组合] `疯狂血战.md` (主) + `疯狂血战_mGDL_v1.3.txt` (辅)
39
+ * [组合] `两门血战麻将.md` (主) + `两门血战麻将_mGDL_v1.3.txt` (辅)
40
+ * [组合] `幺鸡血战.md` (主) + `幺鸡血战_mGDL_v1.3.txt` (辅)
41
+ * [组合] `疯狂血流.md` (主) + `疯狂血流_mGDL_v1.3.txt` (辅)
42
+ * [组合] `海底捞月.md` (主) + `海底捞月_mGDL_v1.3.txt` (辅)
43
+
44
+ * **混合/复杂计分体系 (Hybrid Mode)**
45
+ * [组合] `贵州捉鸡麻将.md` (主) + `贵州捉鸡麻将_mGDL_v1.3.txt` (辅)
46
+ * [组合] `广东鸡平胡.md` (主) + `广东鸡平胡_mGDL_v1.3.txt` (辅)
47
+ * [组合] `广东100张.md` (主) + `广东100张_mGDL_v1.3.txt` (辅)
48
+ * [组合] `合肥麻将.md` (主) + `合肥麻将_mGDL_v1.3.txt` (辅)
49
+ * [组合] `山西扣点麻将.md` (主) + `山西扣点麻将_mGDL_v1.3.txt` (辅)
50
+ * [组合] `经典推倒胡.md` (主) + `经典推倒胡_mGDL_v1.3.txt` (辅)
51
+ * [组合] `长沙麻将.md` (主) + `长沙麻将_mGDL_v1.3.txt` (辅)
52
+
53
+ * **特殊/番数体系 (Special/Fan System)**
54
+ * [组合] `卡五星麻将.md` (主) + `卡五星麻将_mGDL_v1.3.txt` (辅)
55
+ * [组合] `红中麻将.md` (主) + `红中麻将_mGDL_v1.3.txt` (辅)
56
+ * [组合] `武汉麻将.md` (主) + `武汉麻将_mGDL_v1.3.txt` (辅)
57
+ * [组合] `妙手七星.md` (主) + `妙手七星_mGDL_v1.3.txt` (辅)
58
+
59
+ 3. **使用要求**:你的输出必须在语法上完全符合规范1(v1.3),在详细度上不低于上述示例(辅文档)。
60
+ 4. **黄金原则(Golden Rule)**:若用户请求的玩法名称与上述参考文件匹配(如“妙手七星”),**必须读取并遵循对应的 .md 主文档**。
61
+ 5. **主次分明原则(Primary-Auxiliary Principle)**:
62
+ - **当同时存在自然语言文档(.md)和 mGDL 文件(.txt)时**:
63
+ - **主文档(Primary)= 自然语言文档 (.md)**:它是**内容真理**。玩法的风味、设计初衷、非数值体验、特殊规则描述以 .md 为准。
64
+ - **辅文档(Auxiliary)= mGDL 文件 (.txt)**:它是**语法参考**。仅用于参考如何用合法的 v1.3 语法将 .md 中的规则“翻译”成代码,**严禁**因为 mGDL 文件中缺少某个细节而丢弃 .md 中的设计。
65
+ - **冲突解决**:若 .md 说“摸2打1”,而 .txt 示例说“摸1打1”,**以 .md 为准**,必须编写出支持“摸2打1”的新 mGDL 代码,而不是照抄旧代码。
66
+
67
+ ## 玩法融合任务指南 (Variant Fusion Guidelines)
68
+
69
+ 当任务要求**"融合玩法 A 与 玩法 B"**或**"基于 A 玩法增加 B 的机制"**时,请严格遵循以下步骤:
70
+
71
+ ### 1. 机制解构与冲突检测
72
+ 首先分析源玩法的核心特征,并检查是否存在冲突:
73
+ - **计分模式冲突**:若 A 是倍数制(血战),B 是番数制(国标),**强制统一为倍数制(multiplier)**。将番数制番型转化为倍数(如 1番=2倍)。
74
+ - **胡牌流程冲突**:若 A 是血流(胡牌继续),B 是普通(胡牌结束),需明确新玩法采用哪种模式(通常保留血战/血流模式以增加趣味性)。
75
+ - **牌组冲突**:若 A 无万字,B 有花牌,需明确新牌组构成。
76
+
77
+ ### 2. 融合策略
78
+ - **核心+插件模式**:以一个玩法为"底座"(通常选择流程更成熟的血战/血流),将另一个玩法的"特色机制"作为插件植入。
79
+ - *示例*:血流麻将(底座) + 红中赖子(插件) = 红中血流
80
+ - **化学反应(Chemical Reaction)**:融合不应是简单的“A+B”,而应产生新的策略体验。
81
+ - *提问*:引入的新机制(如+2牌)如何改变原有的出牌策略?如果只是单纯增加运气,请重新设计为策略型机制(如“指定下家打出特定花色”)。
82
+ - **特殊机制注册**:所有从 B 玩法引入的机制��如买马、抓鸟、特殊赖子),必须在 `special_mechanics` 中注册。
83
+
84
+ ### 3. 生成要求
85
+ - 在 **游戏理念** 中明确说明融合了哪些玩法的哪些要素。
86
+ - 在 **mGDL** 中,确保引入的机制完全符合 v1.3 语法(如 `horse_rules` 用于买马,`wildcard` 用于赖子)。
87
+ - **禁止**简单堆砌:不要同时保留两套互相矛盾的规则(如同时存在"只能自摸"和"允许点炮"),必须在 `win_rules` 中统一。
88
 
89
  > ⚠️ **注意**:以下"mGDL 生成硬规范"仅约束第3部分(mGDL描述)的语法与语义,不影响其他部分的自由生成。其他部分仍需遵守通用清晰性、确定性、无模糊词等基本要求。
90
 
 
153
  - 任何涉及牌变动的行为必须指定 `(transfer_path from: X to: Y)`
154
  - `pass` 动作必须显式声明为 `(transfer_path none)`
155
 
156
+ 11. **手牌恒定不变量(Hand Size Invariant,红线要求)**:
157
+ - 除起手阶段和胡牌结算瞬间外,**每位玩家在打出牌后必须严格保持手牌数为基准值**(13张)。
158
+ - **动态平衡原则**任何导致手牌增加的机制,必须配套等量的减少机制。
159
+ - 错误示例:定义“摸2功能”作为奖励导致手牌变14/15
160
+ - ✅ 正确修正:“摸2张”必须配套“打2张”或“弃1张+不摸下一轮”,**net change 必须为 0**。
161
  - 每个 `action`(吃/碰/杠/自摸/打牌)必须显式说明其对手牌数量的净影响,并确保后续通过 `discard` 或 `kong_draw` 等操作恢复至基准值。
162
+ - 在 `(invariants)` 中必须包含如下断言:
163
  ```lisp
164
  (invariants
165
+ ; 行牌阶段:打出后手牌恒为13张
166
  (hand_size_stable (forall p (-> (in_phase play) (= (zone hand:p) 13))))
167
+ ; 动态平衡任何Action前后净变化必须为0 (Action_Draw + Action_Discard = 0)
 
168
  )
169
  ```
170
+ - **严禁**出现“吃后手牌=15”、“摸二不打”等违反手牌守恒的描述。
171
 
172
  ### 番数与倍数核心区分(v1.3 重点强调)
173
 
 
732
  - 使用示例(至少1个具体场景)
733
  e. 禁止模糊表述:严禁使用"某些"、"部分"、"可能"等模糊词汇
734
  f. 后续引用标记:每个机制说明的末尾必须标注"→ 详见【第3节-游戏流程-[阶段名]】"
735
+ g. **机制具象化(Concreteness Check)**:
736
+ - ❌ 模糊:获得“某种资源”、“特殊能力”。
737
+ - ✅ 具象:获得“1枚金币(Score+10)”、“摸牌阶段多摸1张”。
738
+ - 严禁使用未定义的抽象概念,所有机制必须落地为:牌的转移、分数的增减、或阶段的改变。
739
 
740
  2. 基础规则描述
741
  a. 牌组构成:
 
1027
  - 赖子使用上限验证 → [PASS/FAIL]
1028
  - 连庄次数上限验证 → [PASS/FAIL]
1029
 
1030
+ ### 14) **玩法融合自检**(融合任务必检)
1031
+
1032
+ **融合模式检查**:
1033
+ - 计分模式统一性:全倍数制 或 全番数制(无混合) → [PASS/FAIL]
1034
+ - 冲突规则排查:无互斥的胡牌/行牌规则 → [PASS/FAIL]
1035
+ - 牌组兼容性:Tileset 包含所有机制所需的牌(如花牌/月亮牌) → [PASS/FAIL]
1036
+
1037
+ **融合插件注册**:
1038
+ - 来源玩法机制完整注册进 special_mechanics → [PASS/FAIL]
1039
+ - 插件机制与底座玩法无逻辑冲突 → [PASS/FAIL]
1040
+
1041
+ ### 15) **最终验收**
1042
 
1043
  **核心验收项**:
1044
  - 模块完整性:[PASS/FAIL]
 
1047
  - 番型可达性:[PASS/FAIL]
1048
  - 无模糊表述:[PASS/FAIL]
1049
  - 自检报告完整:[PASS/FAIL]
1050
+ - 融合自检通过(仅融合任务):[PASS/FAIL/NA]
1051
 
1052
  **最终结论**:[PASS/FAIL]
1053
 
 
1057
 
1058
  **审核人**:[AI系统自审]
1059
  **审核时间**:[YYYY-MM-DD HH:MM:SS]
1060
+ **审核版本**:mGDL v1.3
1061
 
1062
  </details>
1063
 
 
1114
  - 严禁在行牌阶段结束时(即未处于胡牌瞬间)出现手牌 ≠ 13 张的情况(庄家出牌后同理)。
1115
  - 严禁 `action` 定义中缺少 `requires_discard` 或未说明手牌变化。
1116
  - 严禁自然语言描述中省略“吃/碰/杠后需打牌”这一关键步骤。
1117
+ 9. **玩法融合失败**(融合任务专用):
1118
+ - 严禁混用计分模式(如在倍数制中使用 `fan` 字段)。
1119
+ - 严禁引入新机制(如买马)但未在 `special_mechanics` 和 `win_rules/scoring` 中完整定义。
1120
+ - 严禁保留互相冲突的规则(如“血战”与“流局”规则并存)。