Estazz commited on
Commit
ddb6c15
·
verified ·
1 Parent(s): 061d3de

Delete 麻将游戏mGDL通用语法_v1.2.txt

Browse files
Files changed (1) hide show
  1. 麻将游戏mGDL通用语法_v1.2.txt +0 -281
麻将游戏mGDL通用语法_v1.2.txt DELETED
@@ -1,281 +0,0 @@
1
- (game "<Variant_Name>" (version "1.2.0")
2
- ;; =========================
3
- ;; 1. 元信息 & 大类标签
4
- ;; =========================
5
-
6
- ;; 玩法大类:血战 / 血流 / 普通一局一胡制 / 多回合小玩法 / 自定义
7
- (game_variant "blood_war" | "blood_flow" | "round" | "multi_round" | "<custom_variant>")
8
-
9
- ;; 规则轮廓,用于 LLM / 引擎快速判断模块
10
- (rule_profile
11
- (blood_mode "none" | "xuezhan" | "xueliu") ; 是否血战/血流流局方式
12
- (scoring_mode "multiplier" | "fan_exponent" | "horse_only" | "hybrid")
13
- (has_horse true|false) ; 是否有翻马/买马机制
14
- (has_contract true|false) ; 是否有承包/包牌
15
- (has_wildcard true|false) ; 是否有赖子/鬼牌/皮子等
16
- (has_multi_round true|false)) ; 是否包含多小局(如妙手七星)
17
-
18
- ;; =========================
19
- ;; 2. Rule-Core:玩法本体
20
- ;; =========================
21
-
22
- (players 4)
23
-
24
- ;; ---- 牌组定义 ----
25
- (tileset
26
- (suits { "wan" "tong" "tiao" }) ; 基本花色
27
- (ranks 1..9)
28
- (copies 4) ; 序数牌默认每张 4 张
29
-
30
- ;; 字牌:0 表示不用,1 表示启用一整套(东南西北中发白)
31
- ;; honor_copies:可选,覆盖默认的“每种 4 张”
32
- (honors 0|1)
33
- (honor_copies 4) ; 可选:如广东鸡平胡=4,海底捞月=8
34
-
35
- ;; 花牌:如经典推倒胡的春夏秋冬梅兰竹菊
36
- (flowers 0|8)
37
-
38
- ;; 红中张数 / 总牌张数:可按房间配置
39
- (hongzhong 0) ; 简单玩法:固定红中张数
40
- (hongzhong_by_room { ("room_id" N) ... })
41
- (total 108)
42
- (total_by_room { ("room_id" N) ... })
43
-
44
- ;; 额外特殊牌:如“月亮牌”等
45
- (special_tiles
46
- (moon (count 12)) ; 例如海底捞月
47
- ;; ... 可以继续扩展其他特殊牌
48
- )
49
- )
50
-
51
- ;; ---- 特殊机制:幺鸡 / 红中 / 皮子 / 赖子 / 其他鬼牌 ----
52
- (special_mechanics
53
- ;; 幺鸡类:如幺鸡血战 / 海底捞月
54
- (yaoji
55
- (enabled false)
56
- (tile_id "tiao-1") ; 具体是哪张牌作为幺鸡
57
- (as_wild true|false) ; 是否当赖子用
58
- (add_fan_if_present 0)) ; 作为加番时的番数(可选)
59
-
60
- ;; 红中赖子:疯狂血流
61
- (hongzhong
62
- (enabled false)
63
- (as_wild true)
64
- (can_discard true)
65
- (count_as_zimo_if_win_on_discard false)) ; 打出红中可否被胡(广东/武汉为 false)
66
-
67
- ;; 皮子 / 赖子:广东鸡平胡 / 武汉麻将
68
- (pizi
69
- (enabled false)
70
- (determine_by_flip true) ; 通过翻牌确定
71
- (exclude_in_meld true) ; 不能吃碰杠
72
- (can_discard true)
73
- (each_discard_count_as_kong true)) ; 皮子杠:每打出1张算1杠
74
-
75
- (laizi
76
- (enabled false)
77
- (determine_by_flip true)
78
- (as_any_tile_on_win true) ; 胡牌时可当任意牌
79
- (exclude_in_meld true) ; 不能吃碰杠
80
- (can_discard true)
81
- (cannot_be_pizi true)) ; 不能同时当皮子用
82
-
83
- ;; 其它鬼牌类型(海底捞月的月亮牌等)
84
- (moon
85
- (enabled false)
86
- (as_any_tile_on_win true)) ; 举例:可配置为赖子
87
- )
88
-
89
- ;; ---- 座位与出牌顺序 ----
90
- (seats { "A1" "A2" "A3" "A4" })
91
- (turn_order cyclic A1 A2 A3 A4)
92
-
93
- ;; ---- 多回合结构(支持妙手七星 / 多小局玩法) ----
94
- (round_structure
95
- (mode "single" | "fixed_rounds" | "until_target_score")
96
- (round_count 1) ; 如妙手七星为 7
97
- (carry_over
98
- (scores true) ; 上局积分是否结转
99
- (dealer_position true|false) ; 庄是否连庄/轮庄
100
- (multipliers false)) ; 是否结转倍数状态
101
- )
102
-
103
- ;; ---- 游戏阶段 ----
104
- (phases [ "choose_que" "exchange_three" "play" "settle" ])
105
- ;; 非血战类玩法可以只开启 [ "play" "settle" ]
106
- ;; 多回合玩法可在 round_structure 中控制
107
-
108
- ;; ---- 起手 & 翻牌等 ----
109
- (setup
110
- (dealer "random" | "dice" | "fixed") ; 庄家确定方式
111
- (initial_hand 13) ; 起手牌数(庄家可为14)
112
-
113
- ;; 定缺 / 换三张(四川血战血流)
114
- (choose_que
115
- (enabled true|false))
116
- (exchange_three
117
- (enabled true|false)
118
- (mode "clockwise" | "counterclockwise" | "across" | "random"))
119
-
120
- ;; 开局翻牌(广东鸡平胡 / 武汉麻将)
121
- (flip_tile
122
- (enabled false)
123
- (for_pizi true|false)
124
- (for_laizi true|false)
125
- ;; 牌面 +/-1 轮转映射
126
- (rank_cycle [1 2 3 4 5 6 7 8 9 1])
127
- (honor_cycle ["dong" "nan" "xi" "bei" "zhong" "fa" "bai" "dong"])
128
- ;; 红中特殊跳转:如“红中只能做皮子不能做赖子”等
129
- (hongzhong_special
130
- (hongzhong_only_pizi true)
131
- (skip_for_laizi_use_fa true)
132
- (if_flip_bei_use_fa_as_laizi true))
133
- )
134
-
135
- ;; ---- 行为规则:摸打 / 吃碰杠 / 一炮多响 ----
136
- (actions
137
- (allow_chi true|false)
138
- (allow_peng true|false)
139
- (allow_gang { "concealed" "melded" "added" }) ; 暗杠 / 直杠 / 补杠
140
- (one_tile_multi_claim true|false) ; 一张牌可否同时被胡与碰杠(血流= true,鸡平胡= false)
141
- )
142
-
143
- ;; ---- 胡牌规则 ----
144
- (win_rules
145
- ;; 基本胡法:可点炮 / 自摸 / 杠上开花 /
146
- (allow_discard_win true) ; 允许点炮胡
147
- (allow_self_draw_win true) ; 允许自摸胡
148
- (allow_rob_kong true) ; 抢杠胡
149
- (allow_gang_shoot true) ; 杠上炮
150
- (allow_multi_win true) ; 一炮多响
151
- ;; 胡牌要求与特殊机制
152
- (pattern_constraints
153
- (must_open true) ; 必须开口胡
154
- (min_suit_for_win 8) ; 任意花色达到8张
155
- )
156
- (post_win_continuation
157
- (mode "round")
158
- (winner_exit true) ; 胡牌玩家视为本局“完成”,但整局直接结束
159
- (end_round_after_win true) ; 任意玩家胡牌后,结算本局
160
- (allow_multi_winner true)) ; 一炮多响:多家同时胡
161
- )
162
-
163
- ;; =========================
164
- ;; 3. Scoring:计分与番型
165
- ;; =========================
166
-
167
- ;; 支持三种计分模式:
168
- ;; 1)multiplier:血战/血流类倍数制(疯狂血战/血流/幺鸡血战/海底捞月/妙手七星)
169
- ;; 2)fan_exponent:番数制指数计分(武汉麻将、部分广东番数玩法)
170
- ;; 3)horse_only:完全依赖翻马(经典推倒胡)
171
- ;; 4)hybrid:如“番数制+倍率封顶+马会加成”,广东鸡平胡这类可用
172
-
173
- (scoring
174
- (mode "hybrid")
175
- (base_point 1)
176
- (pattern_cap_multiplier 0)
177
- (explosion_cap_multiplier 0)
178
- (formula
179
- ;; 总分 = 基础倍数合计 × 鸟倍 × 骰倍 × 基数
180
- ;; 其中自摸/点炮不自带额外倍数(自摸不算倍数)
181
- (define mult_sum (sum mult)) ; 由 fan_table 产生
182
- (define bird_mult (from_policy "bird_multiplier" default 1))
183
- (define dice_mult (from_policy "dice_multiplier" default 1))
184
- (score = base_point * mult_sum * bird_mult * dice_mult)
185
- )
186
- )
187
-
188
- ;; ========= 番型与倍数(stacking=multiply;按“倍数制”叠乘) =========
189
- (fan_table
190
- (stacking "multiply")
191
-
192
- ;; —— 起手胡:开局即结算为“小胡事件”,每项×1 ——
193
- (yaku qishou_sixi (category "init_small") (mult 1)
194
- (desc "起手四喜:手牌中4张点数一样"))
195
- (yaku qishou_66shun (category "init_small") (mult 1)
196
- (desc "起手六六顺:手牌有两个刻子"))
197
- (yaku qishou_queyise (category "init_small") (mult 1)
198
- (desc "起手缺一色:万/条/筒任缺一门"))
199
- (yaku qishou_banbanhu (category "init_small") (mult 1)
200
- (desc "起手板板胡:无2/5/8"))
201
- (yaku qishou_danwuzhihua (category "init_small") (mult 1)
202
- (desc "起手单五一枝花:某花色仅一张且为5"))
203
- (yaku qishou_jiejiegao (category "init_small") (mult 1)
204
- (desc "起手节节高:三对同花连续点数"))
205
- (yaku qishou_santong (category "init_small") (mult 1)
206
- (desc "起手三同:三花色同点数的对子"))
207
- (yaku qishou_jintongyunu (category "init_small") (mult 1)
208
- (desc "起手金童玉女:二筒、二条各一对"))
209
- (yaku qishou_jiangzhihua (category "init_small") (mult 1)
210
- (desc "起手将一枝花:仅一张将牌(2/5/8)"))
211
-
212
- ;; —— 中途胡事件:对局中形成亦按小胡事件×1 ——
213
- (yaku zhongtu_sixi (category "mid_small") (mult 1)
214
- (desc "中途四喜:对局中4张同点数"))
215
- (yaku zhongtu_66shun (category "mid_small") (mult 1)
216
- (desc "中途六六顺:对局中形成两个刻子"))
217
-
218
- ;; —— 小胡本体(需258作将) ——
219
- (yaku pinghu (category "small") (mult 1)
220
- (require (pair_258 true))
221
- (desc "平胡:将258,其余成刻子或顺子"))
222
-
223
- ;; —— 大胡(6倍起) ——
224
- (yaku pengpenghu (category "big") (mult 6)
225
- (desc "碰碰胡:四坎+将"))
226
- (yaku qidui (category "big") (mult 6)
227
- (require (no_melded_sets true))
228
- (desc "七对:七个对子,无碰杠"))
229
- (yaku quanqiuren (category "big") (mult 6)
230
- (require (all_open true) (win_type "discard"))
231
- (desc "全求人:手牌全被吃碰明杠,仅单吊点炮"))
232
- (yaku qingyise (category "big") (mult 6)
233
- (desc "清一色:全同一花色"))
234
- (yaku jiangjianghu (category "big") (mult 6)
235
- (require (all_tiles_in {2 5 8}))
236
- (desc "将将胡:全由2/5/8组成"))
237
- (yaku haohua_qidui (category "big") (mult 12)
238
- (require (qidui_base true) (quadruplet_count_at_least 1))
239
- (desc "豪华七对:七对中含1个四张"))
240
- (yaku shuanghao_qidui (category "big") (mult 18)
241
- (require (qidui_base true) (quadruplet_count_at_least 2))
242
- (desc "双豪华七对:含2个四张"))
243
- (yaku sanhao_qidui (category "big") (mult 24)
244
- (require (qidui_base true) (quadruplet_count_at_least 3))
245
- (desc "三豪华七对:含3个四张"))
246
-
247
- ;; —— 事件成立即视作大胡(若本体为小胡,仍需258作将) ——
248
- (yaku di_hu (category "event_big") (mult 6)
249
- (require (first_draw_of "non_dealer") (win_type "self_draw"))
250
- (desc "地胡:第一圈内闲家自摸,仅计本项(仍需一门≥8张)"))
251
- (yaku tian_hu (category "event_big") (mult 6)
252
- (require (seat "dealer") (start_hand_win true))
253
- (desc "天胡:庄家起手胡"))
254
- (yaku gangkai (category "event_big") (mult 6)
255
- (require (win_type "self_draw") (after_kong true))
256
- (desc "杠开:杠后自摸胡"))
257
- (yaku qianggang (category "event_big") (mult 6)
258
- (require (rob_added_kong true))
259
- (desc "抢杠胡:补杠被胡"))
260
- (yaku gangpao (category "event_big") (mult 6)
261
- (require (after_kong_discard true) (win_type "discard"))
262
- (desc "杠炮:杠后打出放炮"))
263
- (yaku haidilao (category "event_big") (mult 6)
264
- (require (source "sea_draw") (win_type "self_draw"))
265
- (desc "海底捞:最后一张自摸胡"))
266
- (yaku haidipao (category "event_big") (mult 6)
267
- (require (source "sea_draw") (win_type "discard"))
268
- (desc "海底炮:最后一张放炮"))
269
- )
270
-
271
- ;; ========= 结算 / Settlement =========
272
- (settlement
273
- (score_formula
274
- (on_self_draw (payer "all_others") (count 3))
275
- (on_discard (payer "shooter_only") (count 1))
276
- (multi_win "split_by_pairs_with_shooter") ; 一炮多响分别与放炮者结算
277
- (apply_horse true) ; 套用扎鸟加倍
278
- (apply_policy "dice_policy")
279
- )
280
- )
281
- )