Estazz commited on
Commit
6942362
·
verified ·
1 Parent(s): 9e0f500

Upload 16 files

Browse files
两门血战麻将_mGDL_v1.3.txt ADDED
@@ -0,0 +1,163 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (game "Liangmen_Xuezhan_Mahjong" (version "1.3.0")
2
+ ;; =========================
3
+ ;; 1. 元信息 & 概览
4
+ ;; =========================
5
+
6
+ (game_variant "blood_war")
7
+ (rule_profile
8
+ (blood_mode "xuezhan") ; 血战模式
9
+ (scoring_mode "multiplier") ; 倍数制
10
+ (has_wildcard false)
11
+ (has_horse false)
12
+ (has_contract false)
13
+ (has_multi_round false)
14
+ (has_ting_system true) ; 有报叫系统
15
+ (has_chicken_system false)
16
+ (has_bean_system false)
17
+ )
18
+
19
+ ;; =========================
20
+ ;; 2. Rule-Core:玩法本体
21
+ ;; =========================
22
+
23
+ (players 4)
24
+ (seats [ "A1" "A2" "A3" "A4" ])
25
+ (turn_order
26
+ (order cyclic A1 A2 A3 A4)
27
+ (on_peng_keep_turn true)
28
+ (on_gang_keep_turn true)
29
+ )
30
+
31
+ ;; ---- 牌组定义 ----
32
+ (tileset
33
+ (suits { "tiao" "tong" }) ; 仅条、筒,无万牌
34
+ (ranks 1..9)
35
+ (copies 4)
36
+ (honors 0) (honor_copies 0)
37
+ (flowers 0)
38
+ (total 72) ; 9×2×4 = 72张
39
+ )
40
+
41
+ (phases [ "setup" "deal" "play" "settle" ])
42
+
43
+ (setup
44
+ (dealer "random")
45
+ (initial_hand 13)
46
+ (choose_que (enabled false))
47
+ (exchange_three (enabled false))
48
+ )
49
+
50
+ ;; ---- 行为权限 ----
51
+ (actions
52
+ (allow_chi false)
53
+ (allow_peng true)
54
+ (allow_gang { "concealed" "melded" "added" })
55
+ (one_tile_multi_claim true)
56
+ )
57
+
58
+ ;; ---- 胡牌规则 ----
59
+ (win_rules
60
+ (allow_self_draw_win true)
61
+ (allow_discard_win true)
62
+ (allow_gang_win true)
63
+ (allow_rob_kong true)
64
+ (allow_multi_win true)
65
+
66
+ (post_win_continuation
67
+ (mode "xuezhan")
68
+ (winner_exit true)
69
+ (end_when_third_player_wins true)
70
+ )
71
+ )
72
+
73
+ ;; =========================
74
+ ;; 3. Scoring:计分与番型
75
+ ;; =========================
76
+
77
+ (scoring
78
+ (mode "multiplier")
79
+ (base_point 1)
80
+ (explosion_cap_multiplier 32)
81
+ )
82
+
83
+ ;; ---- 番型表 ----
84
+ (fan_table
85
+ (stacking "multiply") ; 倍数叠乘
86
+
87
+ ;; 基础牌型
88
+ (yaku jibenhu (mult 1) (category "basic") (desc "基本胡"))
89
+ (yaku kaertiao (mult 2) (category "basic") (desc "卡二条"))
90
+
91
+ ;; 特殊牌型
92
+ (yaku qingyise (mult 4) (category "special") (desc "清一色"))
93
+ (yaku pengpenghu (mult 4) (category "special") (desc "碰碰胡"))
94
+ (yaku qidui (mult 4) (category "special") (desc "七对"))
95
+ (yaku haohuaqidui (mult 8) (category "special") (desc "豪华七对"))
96
+ (yaku qingpeng (mult 16) (category "special") (desc "清碰"))
97
+ (yaku qingqidui (mult 16) (category "special") (desc "清七对"))
98
+
99
+ ;; 事件番型 (Stackable)
100
+ (yaku zimu (mult 2) (category "event") (desc "自摸"))
101
+ (yaku qianggang (mult 2) (category "event") (desc "抢杠"))
102
+ (yaku gangshangpao (mult 2) (category "event") (desc "杠上炮"))
103
+ (yaku gangshangkaihua (mult 2) (category "event") (desc "杠上花"))
104
+ (yaku dihu (mult 2) (category "event") (desc "地胡"))
105
+ (yaku tianhu (mult 4) (category "event") (desc "天胡"))
106
+
107
+ ;; 附加番型 (Stackable)
108
+ (yaku gen (mult 2) (category "addon") (desc "根"))
109
+ (yaku duanyaojiu (mult 2) (category "addon") (desc "断幺九"))
110
+ (yaku menqing (mult 2) (category "addon") (desc "门清"))
111
+ (yaku baojiao (mult 16) (category "addon") (desc "报叫倍数"))
112
+ )
113
+
114
+ ;; =========================
115
+ ;; 4. 特殊机制
116
+ ;; =========================
117
+
118
+ ;; ---- 报叫系统 ----
119
+ (ting_system
120
+ (enabled true)
121
+ (reveal_hand false) ; 不亮牌
122
+ (auto_play false)
123
+ (multiplier 16) ; 报叫后胡牌x16? 原文是加倍数,这里设为番型
124
+ (penalty_on_fail true) ; 报叫未胡需赔付
125
+ (allow_gang_without_break true)
126
+ (must_win true) ; 有胡必胡
127
+ (show_waiting_tiles true)
128
+ )
129
+
130
+ ;; ---- 查叫系统 ----
131
+ (cha_jiao
132
+ (enabled true)
133
+ (penalty_to_non_ready true)
134
+ (pay_max_pattern true)
135
+ )
136
+
137
+ ;; ---- 过手碰/过水胡 ----
138
+ (pass_rules
139
+ (guo_shou_peng true)
140
+ (guo_shui_hu true)
141
+ (self_draw_exception true)
142
+ )
143
+
144
+ ;; ---- 杠分规则 ----
145
+ (kong_rules
146
+ (settle_immediately true)
147
+ (melded_kong (point_provider_pays 2) (others_pay 1)) ; (擦挂)
148
+ (added_kong (all_pay 1))
149
+ (concealed_kong (all_pay 2))
150
+ )
151
+
152
+ ;; =========================
153
+ ;; 5. 守恒不变量
154
+ ;; =========================
155
+
156
+ (invariants
157
+ (tile_conservation
158
+ (formula "(+ (zone wall) (zone hand:A1) ... (zone discard_pile)) = 72"))
159
+ (constraints
160
+ (no_wan_tiles true)
161
+ (no_honor_tiles true))
162
+ )
163
+ )
卡五星麻将_mGDL_v1.3.txt ADDED
@@ -0,0 +1,178 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (game "Kawuxing_Mahjong" (version "1.3.0")
2
+ ;; =========================
3
+ ;; 1. 元信息 & 概览
4
+ ;; =========================
5
+
6
+ (game_variant "round")
7
+ (rule_profile
8
+ (blood_mode "none")
9
+ (scoring_mode "multiplier") ; 倍数制
10
+ (has_wildcard false)
11
+ (has_horse true) ; 买马
12
+ (has_contract false)
13
+ (has_multi_round false)
14
+ (has_ting_system true) ; 亮倒
15
+ (has_chicken_system false)
16
+ (has_bean_system false)
17
+ )
18
+
19
+ ;; =========================
20
+ ;; 2. Rule-Core:玩法本体
21
+ ;; =========================
22
+
23
+ (players 3) ; 3人玩法
24
+ (seats [ "A1" "A2" "A3" ])
25
+ (turn_order
26
+ (order cyclic A1 A2 A3)
27
+ (on_peng_keep_turn true)
28
+ (on_gang_keep_turn true)
29
+ )
30
+
31
+ ;; ---- 牌组定义 ----
32
+ (tileset
33
+ (suits { "tiao" "tong" }) ; 无万牌
34
+ (ranks 1..9)
35
+ (copies 4)
36
+ (honors 1)
37
+ (honor_types { "zhong" "fa" "bai" }) ; 仅中发白
38
+ (honor_copies 4)
39
+ (flowers 0)
40
+ (total 84) ; 72 + 12 = 84张
41
+ )
42
+
43
+ (phases [ "setup" "deal" "play" "settle" ])
44
+
45
+ (setup
46
+ (dealer "random")
47
+ (initial_hand 13)
48
+ (choose_que (enabled false))
49
+ (exchange_three (enabled false))
50
+ )
51
+
52
+ ;; ---- 行为权限 ----
53
+ (actions
54
+ (allow_chi false)
55
+ (allow_peng true)
56
+ (allow_gang { "concealed" "melded" "added" })
57
+ (one_tile_multi_claim true)
58
+ )
59
+
60
+ ;; ---- 胡牌规则 ----
61
+ (win_rules
62
+ (allow_self_draw_win true)
63
+ (allow_discard_win true)
64
+ (allow_gang_win true)
65
+ (allow_rob_kong true)
66
+ (allow_multi_win true)
67
+
68
+ (post_win_continuation
69
+ (mode "round")
70
+ )
71
+ )
72
+
73
+ ;; =========================
74
+ ;; 3. Scoring:计分与番型
75
+ ;; =========================
76
+
77
+ (scoring
78
+ (mode "multiplier")
79
+ (base_point 1)
80
+ (explosion_cap_multiplier 16)
81
+ )
82
+
83
+ ;; ---- 番型表 ----
84
+ (fan_table
85
+ (stacking "multiply") ; 倍数叠乘
86
+
87
+ ;; 牌型
88
+ (yaku pinghu (mult 1) (category "basic") (desc "平胡"))
89
+ (yaku pengpenghu (mult 2) (category "special") (desc "碰碰胡"))
90
+ (yaku ming_sigui (mult 2) (category "special") (desc "明四归"))
91
+ (yaku an_sigui (mult 4) (category "special") (desc "暗四归"))
92
+ (yaku qingyise (mult 4) (category "special") (desc "清一色"))
93
+ (yaku qidui (mult 4) (category "special") (desc "七对"))
94
+ (yaku longqidui (mult 8) (category "special") (desc "龙七对"))
95
+ (yaku shuanglongqidui (mult 16) (category "special") (desc "双龙七对"))
96
+ (yaku sanlongqidui (mult 32) (category "special") (desc "三龙七对"))
97
+ (yaku xiaosanyuan (mult 4) (category "special") (desc "小三元"))
98
+ (yaku dasanyuan (mult 8) (category "special") (desc "大三元"))
99
+ (yaku shouzhuayi (mult 4) (category "special") (desc "手抓一"))
100
+ (yaku kawuxing (mult 2) (category "special") (desc "卡五星:46卡5"))
101
+
102
+ ;; 事件(无具体倍数叠加,通常含在牌型或额外算,这里按规则)
103
+ ;; 规则未明确提自摸加倍,但有漂分、买马
104
+ )
105
+
106
+ ;; =========================
107
+ ;; 4. 特殊机制
108
+ ;; =========================
109
+
110
+ ;; ---- 亮倒系统 ----
111
+ (ting_system
112
+ (enabled true)
113
+ (reveal_hand true) ; 亮牌
114
+ (auto_play true)
115
+ (multiplier 2) ; 亮倒翻倍
116
+ (show_waiting_tiles true)
117
+ (restrictions
118
+ (others_cannot_discard_waiting_tiles true)) ; 他人不能打炮牌
119
+ )
120
+
121
+ ;; ---- 买马规则 ----
122
+ (horse_rules
123
+ (enabled true)
124
+ (mode "buy_horse") ; 买马
125
+ (count 1)
126
+ (draw_from "wall_end")
127
+ (effect "add_score") ; 看起来是加分/加倍?原规则: "中 N 鸟" -> mult?
128
+ ; 原文件: (1 (mult 1))...
129
+ (hit_mapping
130
+ ("1" (mult 1)) ("2" (mult 2)) ("3" (mult 3))
131
+ ("4" (mult 4)) ("5" (mult 5)) ("6" (mult 6))
132
+ ("7" (mult 7)) ("8" (mult 8)) ("9" (mult 9))
133
+ ("zhong" (mult 10)) ("fa" (mult 10)) ("bai" (mult 10)))
134
+ )
135
+
136
+ ;; ---- 漂分系统 ----
137
+ (piao_score
138
+ (enabled true)
139
+ (mode "pre_game")
140
+ (effect "additive")
141
+ )
142
+
143
+ ;; ---- 杠上杠翻倍 ----
144
+ (consecutive_kong
145
+ (enabled true)
146
+ (multiplier_progression [1, 2, 4, 8])
147
+ )
148
+
149
+ ;; ---- 杠分规则 ----
150
+ (kong_rules
151
+ (settle_immediately true)
152
+ (concealed_kong (all_pay 2))
153
+ (melded_kong (point_provider_pays 2))
154
+ (added_kong (all_pay 1))
155
+ )
156
+
157
+ ;; =========================
158
+ ;; 5. 结算规则
159
+ ;; =========================
160
+
161
+ (settlement
162
+ (score_formula
163
+ (胡牌得分 = "番型 * 亮倒倍数 (封顶16)")
164
+ (总分 = "胡分 + 杠分 + 漂分 + 买马分")
165
+ )
166
+
167
+ (on_draw
168
+ (penalty_rule
169
+ (first_reveal_player_pays_others_ting_mult true)))
170
+ )
171
+
172
+ (invariants
173
+ (tile_conservation
174
+ (formula "(+ (zone wall) ... ) = 84"))
175
+ (constraints
176
+ (player_count 3))
177
+ )
178
+ )
合肥麻将_mGDL_v1.3.txt ADDED
@@ -0,0 +1,146 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (game "HeFei_Mahjong" (version "1.3.0")
2
+ ;; =========================
3
+ ;; 1. 元信息 & 概览
4
+ ;; =========================
5
+
6
+ (game_variant "round")
7
+ (rule_profile
8
+ (blood_mode "none")
9
+ (scoring_mode "hybrid") ; 混合制:基数 * 嘴数 * 连庄等
10
+ (has_wildcard false)
11
+ (has_horse false)
12
+ (has_contract false)
13
+ (has_multi_round true) ; 连庄机制
14
+ (has_ting_system true) ; 报听系统(部分合肥麻将有报听)
15
+ (has_chicken_system false)
16
+ (has_bean_system false)
17
+ )
18
+
19
+ ;; =========================
20
+ ;; 2. Rule-Core:玩法本体
21
+ ;; =========================
22
+
23
+ (players 4)
24
+ (seats [ "A1" "A2" "A3" "A4" ])
25
+ (turn_order
26
+ (order cyclic A1 A2 A3 A4)
27
+ (on_peng_keep_turn true)
28
+ (on_gang_keep_turn true)
29
+ )
30
+
31
+ ;; ---- 牌组定义 ----
32
+ (tileset
33
+ (suits { "wan" "tong" "tiao" })
34
+ (ranks 2..8) ; 2-8万/筒/条 (合肥麻将特色:无1/9)
35
+ (copies 4)
36
+ (honors 0) (honor_copies 0)
37
+ (flowers 0)
38
+ (total 84) ; 7*3*4 = 84张
39
+ )
40
+
41
+ (phases [ "setup" "deal" "play" "sea_draw" "settle" ])
42
+
43
+ (setup
44
+ (dealer "rotate") ; 轮庄/连庄
45
+ (initial_hand 13)
46
+ (choose_que (enabled false))
47
+ (exchange_three (enabled false))
48
+
49
+ ;; 海底漫游
50
+ (sea_draw
51
+ (enabled true)
52
+ (last_n 4)
53
+ (prohibit_kong true))
54
+ )
55
+
56
+ ;; ---- 行为权限 ----
57
+ (actions
58
+ (allow_chi false)
59
+ (allow_peng true)
60
+ (allow_gang { "concealed" "melded" "added" })
61
+ (one_tile_multi_claim true)
62
+ (allow_ting true)
63
+ )
64
+
65
+ ;; ---- 胡牌规则 ----
66
+ (win_rules
67
+ (allow_self_draw_win true)
68
+ (allow_discard_win true)
69
+ (allow_gang_win true)
70
+ (allow_rob_kong true)
71
+ (allow_multi_win true)
72
+
73
+ (requirements
74
+ (min_suit_for_win 8) ; 必须够8支? (原规则: min_suit_for_win 8 -> 8支起胡)
75
+ (must_ting_for_discard_win true) ; 必须报听才能点炮胡?
76
+ )
77
+
78
+ (post_win_continuation
79
+ (mode "round")
80
+ )
81
+ )
82
+
83
+ ;; =========================
84
+ ;; 3. Scoring:计分与番型
85
+ ;; =========================
86
+
87
+ (scoring
88
+ (mode "hybrid")
89
+ (base_point 1)
90
+ (formula "base_point * total_mouths * event_multiplier")
91
+ )
92
+
93
+ ;; ---- 番型表 (Category: pattern/mouth) ----
94
+ (fan_table
95
+ (stacking "add") ; 嘴数相加
96
+
97
+ ;; 基础嘴数
98
+ (yaku base_hu (pattern_points 15) (category "basic") (desc "基本嘴"))
99
+ (yaku zhi (pattern_points 1) (category "basic") (desc "支(门清? Or card count?)")) ; 原则上合肥麻将"支"是牌张积分
100
+
101
+ ;; 牌型嘴数
102
+ (yaku tong (pattern_points 1) (category "pattern") (desc "同"))
103
+ (yaku kan (pattern_points 1) (category "pattern") (desc "坎"))
104
+ (yaku lianshuang (pattern_points 1) (category "event") (desc "连庄"))
105
+ (yaku quemen (pattern_points 2) (category "pattern") (desc "缺门"))
106
+ (yaku shuangpuzi (pattern_points 2) (category "pattern") (desc "双铺子"))
107
+ (yaku kadianshu (pattern_points 4) (category "pattern") (desc "卡"))
108
+ (yaku huositou (pattern_points 4) (category "pattern") (desc "活四头"))
109
+ (yaku gang (pattern_points 4) (category "pattern") (desc "杠"))
110
+
111
+ ;; 大牌番型 (直接加分or嘴数?)
112
+ (yaku qidui (pattern_points 10) (category "special") (desc "七对"))
113
+ (yaku haohuaqidui (pattern_points 50) (category "special") (desc "豪七"))
114
+ (yaku qingyise (pattern_points 100) (category "special") (desc "清一色"))
115
+ (yaku shitong (pattern_points 100) (category "special") (desc "十同"))
116
+ (yaku sanliankan (pattern_points 100) (category "special") (desc "三连坎"))
117
+ (yaku sianke (pattern_points 100) (category "special") (desc "四暗刻"))
118
+
119
+ ;; 事件
120
+ (yaku haidilao (pattern_points 15) (category "event") (desc "海底捞"))
121
+ (yaku dihu (pattern_points 150) (category "event") (desc "地胡"))
122
+ (yaku tianhu (pattern_points 200) (category "event") (desc "天胡"))
123
+ )
124
+
125
+ ;; Custom extension refs in special_mechanics if needed
126
+
127
+ ;; =========================
128
+ ;; 4. 结算规则
129
+ ;; =========================
130
+
131
+ (settlement
132
+ (score_formula
133
+ (胡牌得分 = "基数 * (基本嘴 + 牌型嘴) * 连庄系数")
134
+ )
135
+ (on_draw
136
+ ;; 查大叫等
137
+ )
138
+ )
139
+
140
+ (invariants
141
+ (tile_conservation
142
+ (formula "(+ (zone wall) ... ) = 84"))
143
+ (constraints
144
+ (no_1_9_rank true))
145
+ )
146
+ )
妙手七星_mGDL_v1.3.txt ADDED
@@ -0,0 +1,159 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (game "MiaoShou_QiXing" (version "1.3.0")
2
+ ;; =========================
3
+ ;; 1. 元信息 & 概览
4
+ ;; =========================
5
+
6
+ (game_variant "multi_round") ; 多小局制
7
+ (rule_profile
8
+ (blood_mode "none")
9
+ (scoring_mode "multiplier")
10
+ (has_wildcard true) ; 季节牌赖子
11
+ (has_horse false)
12
+ (has_contract false)
13
+ (has_multi_round true)
14
+ (has_ting_system false)
15
+ (has_chicken_system false)
16
+ (has_bean_system false)
17
+ )
18
+
19
+ ;; =========================
20
+ ;; 2. Rule-Core:玩法本体
21
+ ;; =========================
22
+
23
+ (players 4)
24
+ (seats [ "A1" "A2" "A3" "A4" ])
25
+ (turn_order
26
+ (order cyclic A1 A2 A3 A4)
27
+ (on_peng_keep_turn false) ; 无碰杠? 原规则 allow_peng false
28
+ )
29
+
30
+ ;; ---- 牌组定义 ----
31
+ (tileset
32
+ (suits { "wan" "tong" "tiao" })
33
+ (ranks 1..9)
34
+ (copies 4)
35
+ (honors 1)
36
+ (honor_types { "zhong" "fa" "bai" "dong" "nan" "xi" "bei" })
37
+ (honor_copies 4)
38
+ (flowers 0)
39
+ (special_tiles
40
+ (season_wildcards 4)) ; 4张季节赖子
41
+ (total 140) ; 136 + 4 = 140
42
+ )
43
+
44
+ (phases [ "setup" "deal" "play" "settle" ])
45
+
46
+ (setup
47
+ (dealer "random")
48
+ (initial_hand 13) ; 或特殊手牌结构
49
+ (round_count 7) ; 7个回合/小局
50
+
51
+ (exchange_three (enabled false))
52
+ )
53
+
54
+ ;; ---- 行为权限 ----
55
+ (actions
56
+ (allow_chi false)
57
+ (allow_peng false) ; 不可吃碰杠
58
+ (allow_gang false)
59
+ (one_tile_multi_claim false)
60
+
61
+ ;; 特殊动作
62
+ (allow_triplet_play true) ; 允许整组刻子出牌
63
+ (allow_draw_three_choose_one true) ; 摸3选1
64
+ )
65
+
66
+ ;; ---- 胡牌规则 ----
67
+ (win_rules
68
+ (allow_self_draw_win true)
69
+ (allow_discard_win false) ; 仅自摸?
70
+ (allow_multi_win true)
71
+
72
+ (post_win_continuation
73
+ (mode "round") ; 或 rounds,取决于是否单局结束
74
+ (round_based_win true) ; 按回合结算
75
+ )
76
+ )
77
+
78
+ ;; =========================
79
+ ;; 3. Scoring:计分与番型
80
+ ;; =========================
81
+
82
+ (scoring
83
+ (mode "multiplier")
84
+ (base_point 1)
85
+ )
86
+
87
+ ;; ---- 番型表 (Category: special, mult) ----
88
+ (fan_table
89
+ (stacking "none") ; 仅取最大
90
+
91
+ (yaku daweitianlong (mult 666) (category "special") (desc "大威天龙"))
92
+ (yaku dadaowuxing (mult 399) (category "special") (desc "大道无形"))
93
+ (yaku jiulongzaitian (mult 399) (category "special") (desc "九龙在天"))
94
+ (yaku dasixi (mult 388) (category "special") (desc "大四喜"))
95
+ (yaku huofenghuang (mult 333) (category "special") (desc "火凤凰"))
96
+ (yaku dachelun (mult 333) (category "special") (desc "大车轮"))
97
+ (yaku wanzhongwushuang (mult 333) (category "special") (desc "万中无双"))
98
+ (yaku lvyise (mult 266) (category "special") (desc "绿一色"))
99
+ (yaku dasanyuan (mult 233) (category "special") (desc "大三元"))
100
+ (yaku quanyaojiu (mult 199) (category "special") (desc "全幺九"))
101
+ (yaku riyuetonghui (mult 88) (category "special") (desc "日月同辉"))
102
+ (yaku ziyise (mult 77) (category "special") (desc "字一色"))
103
+ (yaku qingyise (mult 66) (category "special") (desc "清一色"))
104
+ (yaku quanzhong (mult 55) (category "special") (desc "全中"))
105
+ (yaku quanda (mult 52) (category "special") (desc "全大"))
106
+ (yaku quanxiao (mult 52) (category "special") (desc "全小"))
107
+ (yaku sijiegao (mult 50) (category "special") (desc "四节高"))
108
+ (yaku sanfengke (mult 33) (category "basic") (desc "三风刻"))
109
+ (yaku quanshuangke (mult 22) (category "basic") (desc "全双刻"))
110
+ (yaku hunyaojiu (mult 19) (category "basic") (desc "混幺九"))
111
+ (yaku quandanke (mult 17) (category "basic") (desc "全单刻"))
112
+ (yaku santongke (mult 16) (category "basic") (desc "三同刻"))
113
+ (yaku hunyise (mult 11) (category "basic") (desc "混一色"))
114
+ (yaku taigongdiaoyu (mult 10) (category "basic") (desc "太公钓鱼"))
115
+ (yaku duanyaojiu (mult 9) (category "basic") (desc "断幺九"))
116
+ (yaku sanjiegao (mult 8) (category "basic") (desc "三节高"))
117
+ (yaku shuangshuangtongke (mult 7) (category "basic") (desc "双双同刻"))
118
+ (yaku shuangjianke (mult 4) (category "basic") (desc "双箭刻"))
119
+ (yaku shuangtongke (mult 2) (category "basic") (desc "双同刻"))
120
+ )
121
+
122
+ ;; =========================
123
+ ;; 4. 特殊机制
124
+ ;; =========================
125
+
126
+ (special_mechanics
127
+ (mechanic "SeasonalWildcard"
128
+ (category "wildcard")
129
+ (enabled true)
130
+ (phase "play")
131
+ (description "季节牌可作为赖子,且不能打出")
132
+ (transfer_path none))
133
+
134
+ (mechanic "DrawThreeChooseOne"
135
+ (category "phase_rule")
136
+ (enabled true)
137
+ (phase "play")
138
+ (description "摸3张选1张,其余2张回牌池")
139
+ (transfer_path from: wall to: hand:<PID>))
140
+
141
+ (mechanic "CommonCard"
142
+ (category "scoring")
143
+ (enabled true)
144
+ (phase "settle")
145
+ (description "公共牌翻倍机制 (每回合翻倍增加)")
146
+ (transfer_path none))
147
+ )
148
+
149
+ ;; =========================
150
+ ;; 5. 守恒不变量
151
+ ;; =========================
152
+
153
+ (invariants
154
+ (tile_conservation
155
+ (formula "(+ (zone wall) ... ) = 140"))
156
+ (constraints
157
+ (seven_round_logic true))
158
+ )
159
+ )
山西扣点麻将_mGDL_v1.3.txt ADDED
@@ -0,0 +1,149 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (game "ShanXi_KouDian" (version "1.3.0")
2
+ ;; =========================
3
+ ;; 1. 元信息 & 概览
4
+ ;; =========================
5
+
6
+ (game_variant "round")
7
+ (rule_profile
8
+ (blood_mode "none")
9
+ (scoring_mode "hybrid") ; 混合制:基数*牌型*点数
10
+ (has_wildcard true) ; 随机赖子
11
+ (has_horse false)
12
+ (has_contract false)
13
+ (has_multi_round false)
14
+ (has_ting_system true) ; 报听限制
15
+ (has_chicken_system false)
16
+ (has_bean_system false)
17
+ )
18
+
19
+ ;; =========================
20
+ ;; 2. Rule-Core:玩法本体
21
+ ;; =========================
22
+
23
+ (players 4)
24
+ (seats [ "A1" "A2" "A3" "A4" ])
25
+ (turn_order
26
+ (order cyclic A1 A2 A3 A4)
27
+ (on_peng_keep_turn true)
28
+ (on_gang_keep_turn true)
29
+ )
30
+
31
+ ;; ---- 牌组定义 ----
32
+ (tileset
33
+ (suits { "wan" "tong" "tiao" })
34
+ (ranks 1..9)
35
+ (copies 4)
36
+ (honors 1)
37
+ (honor_types { "zhong" "fa" "bai" "dong" "nan" "xi" "bei" })
38
+ (honor_copies 4)
39
+ (flowers 0)
40
+ (total 136)
41
+ )
42
+
43
+ (phases [ "setup" "deal" "play" "settle" ])
44
+
45
+ (setup
46
+ (dealer "rotate")
47
+ (initial_hand 13)
48
+ (choose_que (enabled false))
49
+ (exchange_three (enabled false))
50
+
51
+ ;; 翻牌定赖
52
+ (flip_tile
53
+ (enabled true)
54
+ (laizi_rules "random_any_tile"))
55
+ )
56
+
57
+ ;; ---- 行为权限 ----
58
+ (actions
59
+ (allow_chi true) ; 允许吃
60
+ (allow_peng true)
61
+ (allow_gang { "concealed" "melded" "added" })
62
+ (one_tile_multi_claim true)
63
+ (allow_ting true)
64
+ )
65
+
66
+ ;; ---- 胡牌规则 ----
67
+ (win_rules
68
+ (allow_self_draw_win true)
69
+ (allow_discard_win true)
70
+ (allow_gang_win true)
71
+ (allow_rob_kong true)
72
+ (allow_multi_win true)
73
+
74
+ ;; 扣点特殊限制
75
+ (requirements
76
+ (min_koudian_for_win 3) ; 自摸最低3点
77
+ (min_koudian_for_discard 6) ; 点炮最低6点
78
+ )
79
+
80
+ (post_win_continuation
81
+ (mode "round")
82
+ )
83
+ )
84
+
85
+ ;; =========================
86
+ ;; 3. Scoring:计分与番型
87
+ ;; =========================
88
+
89
+ (scoring
90
+ (mode "hybrid")
91
+ (base_point 1)
92
+ (formula "base_point * hand_mult * event_mult")
93
+ )
94
+
95
+ ;; ---- 番型表 ----
96
+ (fan_table
97
+ (stacking "multiply")
98
+
99
+ (yaku pinghu (mult 1) (category "basic") (desc "平胡"))
100
+ (yaku yitiaolong (mult 2) (category "special") (desc "一条龙"))
101
+ (yaku qingyise (mult 2) (category "special") (desc "清一色"))
102
+ (yaku qidui (mult 2) (category "special") (desc "七对"))
103
+ (yaku haohua_qidui (mult 4) (category "special") (desc "豪七"))
104
+ (yaku huangjin_qidui (mult 8) (category "special") (desc "黄金七对"))
105
+ (yaku haohua_huangjin_qidui (mult 16) (category "special") (desc "豪华黄金七对"))
106
+ (yaku shisansan (mult 8) (category "special") (desc "十三幺"))
107
+ )
108
+
109
+ ;; =========================
110
+ ;; 4. 特殊机制
111
+ ;; =========================
112
+
113
+ ;; ---- 赖子 ----
114
+ (wildcard
115
+ (enabled true)
116
+ (type "laizi")
117
+ (as_any_tile true)
118
+ (can_discard true)
119
+ )
120
+
121
+ ;; ---- 扣点机制 ----
122
+ (special_mechanics
123
+ (mechanic "KouDianLimit"
124
+ (category "settlement")
125
+ (enabled true)
126
+ (phase "play")
127
+ (description "胡牌需要满足扣点要求:点数=手牌中非顺子牌的点数总和")
128
+ (transfer_path none))
129
+ )
130
+
131
+ ;; =========================
132
+ ;; 5. 结算规则
133
+ ;; =========================
134
+
135
+ (settlement
136
+ (score_formula
137
+ (胡分 = "基数 * 番数 * 2(自摸) 或 1(点炮)")
138
+ )
139
+ (kong_rules
140
+ (kou_dian_map
141
+ (suited_rank_as_point true)
142
+ (honor_point 10)))
143
+ )
144
+
145
+ (invariants
146
+ (tile_conservation
147
+ (formula "(+ (zone wall) ... ) = 136"))
148
+ )
149
+ )
幺鸡血战_mGDL_v1.3.txt ADDED
@@ -0,0 +1,150 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (game "YaoJi_XueZhan" (version "1.3.0")
2
+ ;; =========================
3
+ ;; 1. 元信息 & 概览
4
+ ;; =========================
5
+
6
+ (game_variant "blood_war")
7
+ (rule_profile
8
+ (blood_mode "xuezhan")
9
+ (scoring_mode "multiplier") ; 倍数制
10
+ (has_wildcard true) ; 幺鸡赖子
11
+ (has_horse false)
12
+ (has_contract false)
13
+ (has_multi_round false)
14
+ (has_ting_system false)
15
+ (has_chicken_system false)
16
+ (has_bean_system false)
17
+ )
18
+
19
+ ;; =========================
20
+ ;; 2. Rule-Core:玩法本体
21
+ ;; =========================
22
+
23
+ (players 4)
24
+ (seats [ "A1" "A2" "A3" "A4" ])
25
+ (turn_order
26
+ (order cyclic A1 A2 A3 A4)
27
+ (on_peng_keep_turn true)
28
+ (on_gang_keep_turn true)
29
+ )
30
+
31
+ ;; ---- 牌组定义 ----
32
+ (tileset
33
+ (suits { "wan" "tong" "tiao" })
34
+ (ranks 1..9)
35
+ (copies 4)
36
+ (honors 0) (honor_copies 0)
37
+ (flowers 0)
38
+ (total 108)
39
+ )
40
+
41
+ (phases [ "setup" "deal" "choose_que" "exchange_three" "play" "settle" ])
42
+
43
+ (setup
44
+ (dealer "random")
45
+ (initial_hand 13)
46
+
47
+ (choose_que
48
+ (enabled true)
49
+ (must_keep_under_two_suits_to_win true)
50
+ (lock_que true))
51
+
52
+ (exchange_three
53
+ (enabled true)
54
+ (mode "random_one_player")
55
+ (require_same_suit true)
56
+ (return_chosen_tiles_to_wall false))
57
+ )
58
+
59
+ ;; ---- 行为权限 ----
60
+ (actions
61
+ (allow_chi false)
62
+ (allow_peng true)
63
+ (allow_gang { "concealed" "melded" "added" })
64
+ (one_tile_multi_claim true)
65
+ )
66
+
67
+ ;; ---- 胡牌规则 ----
68
+ (win_rules
69
+ (allow_self_draw_win true)
70
+ (allow_discard_win true)
71
+ (allow_gang_win true)
72
+ (allow_rob_kong true)
73
+ (allow_multi_win true)
74
+
75
+ (requirements
76
+ (must_que true)
77
+ )
78
+
79
+ (post_win_continuation
80
+ (mode "xuezhan")
81
+ (winner_exit true)
82
+ (end_when_third_player_wins true)
83
+ )
84
+ )
85
+
86
+ ;; =========================
87
+ ;; 3. Scoring:计分与番型
88
+ ;; =========================
89
+
90
+ (scoring
91
+ (mode "multiplier")
92
+ (base_point 1)
93
+ (self_draw_multiplier 2) ; 自摸加倍(x2)
94
+ (discard_win_multiplier 1)
95
+ (min_multiplier 8) ; 起胡倍数? (原: start_multiplier 8)
96
+ (explosion_cap_multiplier 128) ; 128倍封顶
97
+ )
98
+
99
+ ;; ---- 番型表 ----
100
+ (fan_table
101
+ (stacking "multiply") ; 倍数叠乘
102
+
103
+ (yaku pinghu (mult 1) (category "basic") (desc "平胡"))
104
+ (yaku pengpenghu (mult 2) (category "special") (desc "碰碰胡"))
105
+ (yaku qidui (mult 4) (category "special") (desc "七对"))
106
+ (yaku qingyise (mult 4) (category "special") (desc "清一色"))
107
+ (yaku jingoudiao (mult 4) (category "special") (desc "金钩钓"))
108
+ (yaku longqidui (mult 8) (category "special") (desc "龙七对"))
109
+ (yaku qingpeng (mult 8) (category "special") (desc "清碰"))
110
+ (yaku shuanglongqidui (mult 16) (category "special") (desc "双龙七对"))
111
+ (yaku qingqidui (mult 16) (category "special") (desc "清七对"))
112
+ (yaku qingjingoudiao (mult 16) (category "special") (desc "清金钩钓"))
113
+ (yaku sanlongqidui (mult 32) (category "special") (desc "三龙七对"))
114
+ (yaku qinglongqidui (mult 32) (category "special") (desc "清龙七对"))
115
+ (yaku shibaluohan (mult 64) (category "special") (desc "十八罗汉"))
116
+
117
+ (yaku gangshangkaihua (mult 2) (category "event") (desc "杠上开花"))
118
+ (yaku gangshangpao (mult 2) (category "event") (desc "杠上炮"))
119
+ (yaku qiangganghu (mult 2) (category "event") (desc "抢杠胡"))
120
+ (yaku haidilao (mult 2) (category "event") (desc "海底捞"))
121
+ (yaku haidipao (mult 2) (category "event") (desc "海底炮"))
122
+ (yaku gen (mult 2) (category "addon") (desc "根"))
123
+
124
+ (yaku wujichi (mult 2) (category "special") (desc "无鸡胡"))
125
+ (yaku sanji (mult 4) (category "special") (desc "三幺鸡"))
126
+ (yaku siji (mult 8) (category "special") (desc "四幺鸡"))
127
+
128
+ (yaku tianhu (force_cap true) (category "event") (desc "天胡"))
129
+ (yaku dihu (force_cap true) (category "event") (desc "地胡"))
130
+ )
131
+
132
+ ;; =========================
133
+ ;; 4. 特殊机制
134
+ ;; =========================
135
+
136
+ ;; ---- 幺鸡赖子 ----
137
+ (wildcard
138
+ (enabled true)
139
+ (type "yaoji")
140
+ (as_any_tile true)
141
+ (can_discard true)
142
+ )
143
+
144
+ (invariants
145
+ (tile_conservation
146
+ (formula "(+ (zone wall) ... ) = 108"))
147
+ (constraints
148
+ (yaoji_is_wildcard true))
149
+ )
150
+ )
广东100张_mGDL_v1.3.txt ADDED
@@ -0,0 +1,417 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (game "Guangdong_100Zhang" (version "1.3.0")
2
+ ;; =========================
3
+ ;; 1. 元信息 & 概览
4
+ ;; =========================
5
+
6
+ (game_variant "round")
7
+ (rule_profile
8
+ (blood_mode "none")
9
+ (scoring_mode "multiplier") ; 倍数制
10
+ (has_wildcard true) ; 有鬼牌
11
+ (has_horse true) ; 有买马
12
+ (has_contract true) ; 有承包规则
13
+ (has_multi_round false)
14
+ (has_ting_system false)
15
+ (has_chicken_system false)
16
+ (has_bean_system false)
17
+ )
18
+
19
+ ;; =========================
20
+ ;; 2. Rule-Core:玩法本体
21
+ ;; =========================
22
+
23
+ (players 4)
24
+ (seats [ "A1" "A2" "A3" "A4" ]) ; A1=庄
25
+ (turn_order
26
+ (order [ "A1" "A2" "A3" "A4" ])
27
+ (on_peng_keep_turn true)
28
+ (on_gang_keep_turn true)
29
+ )
30
+
31
+ ;; ---- 牌组定义 ----
32
+ (tileset
33
+ (suits { "tiao" "tong" }) ; 仅条、筒,无万牌
34
+ (ranks 1..9)
35
+ (copies 4)
36
+ (honors 1) ; 有字牌
37
+ (honor_types ["东" "南" "西" "北" "中" "发" "白"]) ; 全部7种字牌
38
+ (honor_copies 4)
39
+ (flowers 0)
40
+ (total 100) ; 9×2×4 + 7×4 = 100张
41
+ )
42
+
43
+ ;; 牌数验证:
44
+ ;; TotalTiles = 9 × 2 × 4 + 7 × 4 = 100
45
+ ;; 庄家起手:14张
46
+ ;; 闲家起手:13×3 = 39张
47
+ ;; 牌墙剩余:100 - 14 - 39 = 47张 ✓
48
+
49
+ (phases [ "play" "settle" ])
50
+
51
+ (setup
52
+ (dealer "random")
53
+ (initial_hand 13)
54
+ (choose_que (enabled false))
55
+ (exchange_three (enabled false))
56
+
57
+ ;; 翻鬼牌
58
+ (flip_tile
59
+ (enabled true)
60
+ (mode "flip_ghost")
61
+ (rule "plus_one_with_cycle") ; 翻牌+1为鬼,字牌循环
62
+ (honor_cycle ["东" "南" "西" "北" "中" "发" "白" "东"]) ; 翻北则中为鬼,翻白则东为鬼
63
+ )
64
+ )
65
+
66
+ ;; ---- 行为权限 ----
67
+ (actions
68
+ (allow_chi false) ; 不可吃
69
+ (allow_peng true) ; 可碰
70
+ (allow_gang { "concealed" "melded" "added" }) ; 可暗杠、直杠、补杠
71
+ (one_tile_multi_claim true) ; 允许一炮多响
72
+
73
+ ;; 特殊规则
74
+ (delayed_gang_allowed true) ; 可以先碰后补杠
75
+ (delayed_gang_no_score true) ; 延迟补杠不收分
76
+ )
77
+
78
+ ;; ---- 胡牌规则 ----
79
+ (win_rules
80
+ (allow_self_draw_win true) ; 可自摸
81
+ (allow_discard_win true) ; 可点炮
82
+ (allow_gang_win true) ; 可杠上开花
83
+ (allow_rob_kong true) ; 可抢杠胡
84
+ (allow_multi_win true) ; 一炮多响
85
+
86
+ ;; 特殊限制
87
+ (pattern_specific_constraints
88
+ (jihu (allow_discard_win false)) ; 鸡胡只能自摸
89
+ (four_ghost_can_win true) ; 4张鬼牌可直接胡(非必胡)
90
+ (all_ghost_must_win true)) ; 手上全是鬼牌必胡
91
+
92
+ (post_win_continuation
93
+ (mode "round")
94
+ )
95
+ )
96
+
97
+ ;; =========================
98
+ ;; 3. Scoring:计分与番型
99
+ ;; =========================
100
+
101
+ (scoring
102
+ (mode "multiplier")
103
+ (base_point 1)
104
+ )
105
+
106
+ ;; ---- 番型表 ----
107
+ ;; 操作类番型(与牌型类番型叠乘)
108
+ (fan_table
109
+ (stacking "multiply")
110
+
111
+ (yaku zimu
112
+ (mult 1)
113
+ (category "event")
114
+ (desc "自摸:自己摸到牌胡牌"))
115
+
116
+ (yaku dianpao
117
+ (mult 1)
118
+ (category "event")
119
+ (desc "点炮:胡别人打出的牌,鸡胡不允许点炮胡,允许一炮多响"))
120
+
121
+ (yaku gangkai
122
+ (mult 2)
123
+ (category "event")
124
+ (desc "杠开:开杠后补牌正好胡牌"))
125
+
126
+ (yaku qianggang
127
+ (mult 3)
128
+ (category "event")
129
+ (desc "抢杠胡:胡的那张牌正好是其他玩家补杠的牌,由补杠的玩家承包3家买马分"))
130
+ )
131
+
132
+ ;; 牌型类番型(不叠加,仅取最大;同番数按优先级)
133
+ (fan_table
134
+ (yaku jihu
135
+ (mult 2)
136
+ (category "basic")
137
+ (priority 1)
138
+ (desc "鸡胡:4副顺子/刻子+1副将,其中顺子和刻子数都需要大于等于1,手牌和副露条筒数大于等于1")
139
+ (require (allow_discard_win false))) ; 只能自摸
140
+
141
+ (yaku pinghu
142
+ (mult 3)
143
+ (category "basic")
144
+ (priority 1)
145
+ (desc "平胡:4副顺子+1副将"))
146
+
147
+ (yaku hunyise
148
+ (mult 4)
149
+ (category "special")
150
+ (priority 1)
151
+ (desc "混一色:胡牌时手牌和副露是条筒其中一种花色加上字牌"))
152
+
153
+ (yaku pengpenghu
154
+ (mult 4)
155
+ (category "special")
156
+ (priority 2)
157
+ (desc "碰碰胡:4副刻子/杠+1副将"))
158
+
159
+ (yaku qidui
160
+ (mult 8)
161
+ (category "special")
162
+ (priority 1)
163
+ (desc "七对:七个不一样的对子"))
164
+
165
+ (yaku qingyise
166
+ (mult 8)
167
+ (category "special")
168
+ (priority 2)
169
+ (desc "清一色:胡牌时手牌和副露由单一条/筒组成"))
170
+
171
+ (yaku hunpeng
172
+ (mult 8)
173
+ (category "special")
174
+ (priority 3)
175
+ (desc "混碰:碰碰胡 + 混一色"))
176
+
177
+ (yaku haohuaqidui
178
+ (mult 12)
179
+ (category "special")
180
+ (priority 1)
181
+ (desc "豪华七对:七对中有1组一样的对子"))
182
+
183
+ (yaku hunyaojiu
184
+ (mult 12)
185
+ (category "special")
186
+ (priority 2)
187
+ (desc "混幺九:胡牌时手牌和副露只由幺九牌组成,1、9牌总数大于1"))
188
+
189
+ (yaku qingpeng
190
+ (mult 12)
191
+ (category "special")
192
+ (priority 3)
193
+ (desc "清碰:碰碰胡 + 清一色"))
194
+
195
+ (yaku sigui
196
+ (mult 18)
197
+ (category "special")
198
+ (priority 1)
199
+ (desc "四鬼:4张鬼牌可以直接胡牌(非必胡)"))
200
+
201
+ (yaku xiaosanyuan
202
+ (mult 18)
203
+ (category "special")
204
+ (priority 2)
205
+ (desc "小三元:中发白2副刻子/杠1副将+任意2副顺子/刻子"))
206
+
207
+ (yaku xiaosixi
208
+ (mult 18)
209
+ (category "special")
210
+ (priority 3)
211
+ (desc "小四喜:东南西北3副刻子/杠1副将+任意顺子/刻子"))
212
+
213
+ (yaku tianhu
214
+ (mult 24)
215
+ (category "event")
216
+ (priority 1)
217
+ (desc "天胡:庄家起手14张牌直接胡牌(不可暗杠)必胡"))
218
+
219
+ (yaku dihu
220
+ (mult 24)
221
+ (category "event")
222
+ (priority 2)
223
+ (desc "地胡:闲家胡自己摸的第一张牌(自己不可碰、杠)必胡"))
224
+
225
+ (yaku shuanghaohuaqidui
226
+ (mult 24)
227
+ (category "special")
228
+ (priority 3)
229
+ (desc "双豪华七对:七对中有2组一样的对子"))
230
+
231
+ (yaku ziyise
232
+ (mult 24)
233
+ (category "special")
234
+ (priority 4)
235
+ (desc "字一色:胡牌时手牌和副露由单一字牌组成"))
236
+
237
+ (yaku dasanyuan
238
+ (mult 32)
239
+ (category "special")
240
+ (priority 1)
241
+ (desc "大三元:中发白3副刻子/杠+1副将+1副顺子/刻子"))
242
+
243
+ (yaku dasixi
244
+ (mult 32)
245
+ (category "special")
246
+ (priority 2)
247
+ (desc "大四喜:东南西北4副刻子/杠+1副将"))
248
+
249
+ (yaku sanhaohuaqidui
250
+ (mult 36)
251
+ (category "special")
252
+ (priority 1)
253
+ (desc "三豪华七对:七对中有3组一样的对子"))
254
+
255
+ (yaku shibbaluohan
256
+ (mult 36)
257
+ (category "special")
258
+ (priority 2)
259
+ (desc "十八罗汉:胡牌时有4个杠"))
260
+ )
261
+
262
+ ;; 额外加番
263
+ (fan_table
264
+ (yaku wugui
265
+ (mult 2)
266
+ (category "addon")
267
+ (desc "无鬼:如果胡牌时手牌中没有鬼牌,则胡牌倍数 x 2"))
268
+ )
269
+
270
+ ;; =========================
271
+ ;; 4. 特殊机制
272
+ ;; =========================
273
+
274
+ ;; ---- 鬼牌(赖子)----
275
+ (wildcard
276
+ (enabled true)
277
+ (type "gui")
278
+ (as_any_tile true) ; 可当任意牌
279
+ (can_discard false) ; 不可打出
280
+ (can_peng_gang false) ; 不可参与碰杠
281
+ (four_ghost_can_win true) ; 4张鬼牌可直接胡
282
+ (all_ghost_must_win true) ; 手上全是鬼牌必胡
283
+
284
+ ;; 碰后限制
285
+ (peng_restriction
286
+ (only_discard_if_all_ghost true)) ; 碰后只剩鬼牌则不允许碰
287
+ )
288
+
289
+ ;; ---- 买马规则 ----
290
+ (horse_rules
291
+ (enabled true)
292
+ (mode "buy_horse")
293
+ (count 2) ; 每人2马
294
+ (players "all") ; 4人买马
295
+ (draw_from "external_deck") ; 使用另一副牌
296
+ (exclude_on_draw true) ; 流局不买马
297
+
298
+ ;; 位置与点数对应
299
+ (hit_mapping
300
+ (庄家 ["1" "5" "9" "东"])
301
+ (庄家下家 ["2" "6" "南" "中"])
302
+ (庄家对家 ["3" "7" "西" "发"])
303
+ (庄家上家 ["4" "8" "北" "白"]))
304
+
305
+ (effect "same_win_same_lose") ; 买中对应玩家同赢同输
306
+ (exclude_kong_gen_zhuang true) ; 只算胡牌分、跟庄分,不算杠分
307
+
308
+ ;; 金币场特殊规则
309
+ (jinbi_mode
310
+ (flip_8_horses true)
311
+ (remove_9_before_flip true) ; 翻8马时先去掉4张9筒或9条,避免庄家优势
312
+ )
313
+ )
314
+
315
+ ;; ---- 跟庄系统 ----
316
+ (gen_zhuang
317
+ (enabled true)
318
+ (condition "all_follow_dealer_first") ; 庄家第一张牌三家都跟
319
+ (payout "dealer_to_all") ; 庄家赔各1倍基数
320
+ (multiplier 1)
321
+ (settle_immediately true) ; 即时结算
322
+ (no_refund_on_draw true) ; 流局不退回
323
+ (exclude_from_horse true) ; 不算马分
324
+ )
325
+
326
+ ;; ---- 承包规则 ----
327
+ (contract_rules
328
+ ;; 12张落地承包
329
+ (twelve_meld_contract
330
+ (enabled true)
331
+ (condition "fourth_meld_provider") ; 放第4次碰/杠的玩家
332
+ (coverage "all_losers") ; 承包所有输分
333
+ (exclude_kong_gen_zhuang true) ; 不含杠分、跟庄分
334
+ (concealed_kong_no_contract true) ; 第4次是暗杠则无承包
335
+ (horse_calculation
336
+ (base_score "contractor_loses_3x"))) ; 基础胡分为承包者输胜者3倍
337
+
338
+ ;; 杠爆全包
339
+ (gang_bao_contract
340
+ (enabled true)
341
+ (condition "kong_then_self_draw") ; 点杠后杠上开花
342
+ (coverage "all_losers") ; 承包3家所有输分
343
+ (exclude_kong_gen_zhuang true) ; 不含杠分、跟庄分
344
+ (consecutive_kong_no_contract true) ; 杠后再杠,杠上开花不算杠爆
345
+ (horse_calculation
346
+ (base_score "contractor_loses_3x")))
347
+ )
348
+
349
+ ;; ---- 杠分规则 ----
350
+ (kong_rules
351
+ (settle_immediately true) ; 即时结算
352
+
353
+ ;; 点杠
354
+ (melded_kong
355
+ (point_provider_pays 3))
356
+
357
+ ;; 补杠
358
+ (added_kong
359
+ (all_pay 1)
360
+ (delayed_no_score true)) ; 延迟补杠不收分
361
+
362
+ ;; 暗杠
363
+ (concealed_kong
364
+ (all_pay 2))
365
+ )
366
+
367
+ ;; ---- 过胡规则 ----
368
+ (pass_rules
369
+ (guo_hu
370
+ (enabled true)
371
+ (condition "same_round_first_occurrence")
372
+ (restriction "cannot_win_same_tile_before_draw"))
373
+ )
374
+
375
+ ;; =========================
376
+ ;; 5. 结算规则
377
+ ;; =========================
378
+
379
+ (settlement
380
+ (score_formula
381
+ (结算分数 = "基数 *(胡牌倍数 + 买马倍数 + 杠分 + 跟庄分)")
382
+ (放炮 "输家独给")
383
+ (自摸 "三家给")
384
+
385
+ (on_self_draw (payer "all_others") (count 3))
386
+ (on_discard (payer "shooter_only") (count 1))
387
+
388
+ ;; 承包与买马
389
+ (contract_then_horse true) ; 先算完每个玩家的分数,最后再承包
390
+ )
391
+
392
+ ;; 流局规则
393
+ (on_draw
394
+ (kong_gen_zhuang_kept true) ; 杠分、跟庄分不退回
395
+ (no_cha_jiao true)) ; 无查叫
396
+ )
397
+
398
+ ;; =========================
399
+ ;; 6. 守恒不变量
400
+ ;; =========================
401
+
402
+ (invariants
403
+ ;; 牌数守恒
404
+ (tile_conservation
405
+ (formula "(+ (zone wall) (zone hand:A1) (zone hand:A2) (zone hand:A3) (zone hand:A4)
406
+ (zone meld:A1) (zone meld:A2) (zone meld:A3) (zone meld:A4)
407
+ (zone kong:A1) (zone kong:A2) (zone kong:A3) (zone kong:A4)
408
+ (zone discard_pile)) = 100"))
409
+
410
+ ;; 约束验证
411
+ (constraints
412
+ (no_wan_tiles true) ; 无万牌
413
+ (has_all_honors true) ; 有全部7种字牌
414
+ (has_ghost true) ; 有鬼牌
415
+ (jihu_only_self_draw true)) ; 鸡胡只能自摸
416
+ )
417
+ )
广东鸡平胡_mGDL_v1.3.txt ADDED
@@ -0,0 +1,147 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (game "GuangDong_JiPingHu" (version "1.3.0")
2
+ ;; =========================
3
+ ;; 1. 元信息 & 概览
4
+ ;; =========================
5
+
6
+ (game_variant "round")
7
+ (rule_profile
8
+ (blood_mode "none")
9
+ (scoring_mode "hybrid") ; 混合制
10
+ (has_wildcard true) ; 鬼牌
11
+ (has_horse true) ; 买马
12
+ (has_contract true) ; 承包
13
+ (has_multi_round false)
14
+ (has_ting_system false)
15
+ (has_chicken_system false) ; 此"鸡"非捉鸡麻将之鸡
16
+ (has_bean_system false)
17
+ )
18
+
19
+ ;; =========================
20
+ ;; 2. Rule-Core:玩法本体
21
+ ;; =========================
22
+
23
+ (players 4)
24
+ (seats [ "A1" "A2" "A3" "A4" ])
25
+ (turn_order
26
+ (order cyclic A1 A2 A3 A4)
27
+ (on_peng_keep_turn true)
28
+ (on_gang_keep_turn true)
29
+ )
30
+
31
+ ;; ---- 牌组定义 ----
32
+ (tileset
33
+ (suits { "wan" "tong" "tiao" })
34
+ (ranks 1..9)
35
+ (copies 4)
36
+ (honors 1)
37
+ (honor_types { "zhong" "fa" "bai" "dong" "nan" "xi" "bei" })
38
+ (honor_copies 4)
39
+ (flowers 0)
40
+ (total 136)
41
+ )
42
+
43
+ (phases [ "setup" "deal" "play" "settle" ])
44
+
45
+ (setup
46
+ (dealer "dice")
47
+ (initial_hand 13)
48
+ (choose_que (enabled false))
49
+ (exchange_three (enabled false))
50
+
51
+ ;; 翻鬼
52
+ (flip_tile
53
+ (enabled true)
54
+ (pizi_rules "flipped_and_minus_one")
55
+ (laizi_rules "flipped_and_plus_one"))
56
+ )
57
+
58
+ ;; ---- 行为权限 ----
59
+ (actions
60
+ (allow_chi false) ; 鸡平胡大多不吃,部分吃
61
+ (allow_peng true)
62
+ (allow_gang { "concealed" "melded" "added" })
63
+ (one_tile_multi_claim true)
64
+ )
65
+
66
+ ;; ---- 胡牌规则 ----
67
+ (win_rules
68
+ (allow_self_draw_win true)
69
+ (allow_discard_win true)
70
+ (allow_gang_win true)
71
+ (allow_rob_kong true)
72
+ (allow_multi_win true)
73
+
74
+ (pattern_specific_constraints
75
+ (jihu (allow_discard_win false)) ; 鸡胡只能自摸
76
+ )
77
+
78
+ (post_win_continuation
79
+ (mode "round")
80
+ )
81
+ )
82
+
83
+ ;; =========================
84
+ ;; 3. Scoring:计分与番型
85
+ ;; =========================
86
+
87
+ (scoring
88
+ (mode "hybrid")
89
+ (base_point 1)
90
+ (explosion_cap_multiplier 64) ; 封顶
91
+ )
92
+
93
+ ;; ---- 番型表 ----
94
+ (fan_table
95
+ (stacking "multiply") ; 倍数叠乘
96
+
97
+ (yaku jihu (mult 1) (category "basic") (desc "鸡胡"))
98
+ (yaku pinghu (mult 2) (category "basic") (desc "平胡"))
99
+ (yaku pengpenghu (mult 4) (category "basic") (desc "碰碰胡"))
100
+ (yaku hunyise (mult 4) (category "basic") (desc "混一色"))
101
+ (yaku qidui (mult 8) (category "basic") (desc "七对"))
102
+ (yaku qingyise (mult 16) (category "limit") (desc "清一色"))
103
+ (yaku haohuaxidui (mult 16) (category "limit") (desc "豪华七对"))
104
+ (yaku ziyise (mult 64) (category "limit") (desc "字一色"))
105
+ (yaku shisanyao (mult 64) (category "limit") (desc "十三幺"))
106
+
107
+ (yaku zimo (mult 2) (category "event") (desc "自摸"))
108
+ (yaku gangkai (mult 8) (category "event") (desc "杠开"))
109
+ (yaku qianggang (mult 8) (category "event") (desc "抢杠"))
110
+ (yaku haidilao (mult 8) (category "event") (desc "海底捞月"))
111
+ (yaku tianhu (mult 64) (category "event") (desc "天胡"))
112
+ (yaku dihu (mult 32) (category "event") (desc "地胡"))
113
+ )
114
+
115
+ ;; =========================
116
+ ;; 4. 特殊机制
117
+ ;; =========================
118
+
119
+ ;; ---- 赖子 ----
120
+ (wildcard
121
+ (enabled true)
122
+ (type "laizi")
123
+ (as_any_tile true)
124
+ (can_discard true)
125
+ )
126
+
127
+ ;; ---- 买马 ----
128
+ (horse_rules
129
+ (enabled true)
130
+ (mode "horse")
131
+ (count 4)
132
+ (draw_from "wall_end")
133
+ (effect "same_win_no_loss") ; 中马同赢不同输(或全马)
134
+ (hit_mapping ("1/5/9" (mult 1)))
135
+ )
136
+
137
+ ;; ---- 承包 ----
138
+ (contract_rules
139
+ (gang_bao_contract (enabled true))
140
+ (rob_kong_contract (enabled true))
141
+ )
142
+
143
+ (invariants
144
+ (tile_conservation
145
+ (formula "(+ (zone wall) ... ) = 136"))
146
+ )
147
+ )
武汉麻将_mGDL_v1.3.txt ADDED
@@ -0,0 +1,142 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (game "Wuhan_Mahjong" (version "1.3.0")
2
+ ;; =========================
3
+ ;; 1. 元信息 & 概览
4
+ ;; =========================
5
+
6
+ (game_variant "round")
7
+ (rule_profile
8
+ (blood_mode "none")
9
+ (scoring_mode "fan_system") ; 番数制(口口番: 2^n)
10
+ (has_wildcard true) ; 赖子
11
+ (has_horse false)
12
+ (has_contract true) ; 承包
13
+ (has_multi_round false)
14
+ (has_ting_system false)
15
+ (has_chicken_system false)
16
+ (has_bean_system false)
17
+ )
18
+
19
+ ;; =========================
20
+ ;; 2. Rule-Core:玩法本体
21
+ ;; =========================
22
+
23
+ (players 4)
24
+ (seats [ "A1" "A2" "A3" "A4" ])
25
+ (turn_order
26
+ (order cyclic A1 A2 A3 A4)
27
+ (on_peng_keep_turn true)
28
+ (on_gang_keep_turn true)
29
+ )
30
+
31
+ ;; ---- 牌组定义 ----
32
+ (tileset
33
+ (suits { "wan" "tong" "tiao" })
34
+ (ranks 1..9)
35
+ (copies 4)
36
+ (honors 1)
37
+ (honor_types { "zhong" "fa" "bai" "dong" "nan" "xi" "bei" })
38
+ (honor_copies 4)
39
+ (flowers 0)
40
+ (total 136)
41
+ )
42
+
43
+ (phases [ "setup" "deal" "play" "settle" ])
44
+
45
+ (setup
46
+ (dealer "dice")
47
+ (initial_hand 13)
48
+
49
+ (flip_tile
50
+ (enabled true)
51
+ (pizi_rules "flipped_minus_one") ; 皮子
52
+ (laizi_rules "flipped_plus_one")) ; 赖子
53
+ )
54
+
55
+ ;; ---- 行为权限 ----
56
+ (actions
57
+ (allow_chi true) ; 允许吃
58
+ (allow_peng true)
59
+ (allow_gang { "concealed" "melded" "added" })
60
+ (one_tile_multi_claim false) ; 不允许一炮多响(通常截胡)
61
+ )
62
+
63
+ ;; ---- 胡牌规则 ----
64
+ (win_rules
65
+ (allow_self_draw_win true)
66
+ (allow_discard_win true)
67
+ (allow_gang_win true)
68
+ (allow_rob_kong true)
69
+ (allow_multi_win false)
70
+
71
+ (requirements
72
+ (must_open true) ; 必须开口
73
+ (no_pizi_in_hand true) ; 红中/赖子皮要在杠区
74
+ (small_hand_pair_must_be_258 true) ; 小胡258将
75
+ )
76
+
77
+ (post_win_continuation
78
+ (mode "round")
79
+ )
80
+ )
81
+
82
+ ;; =========================
83
+ ;; 3. Scoring:计分与番型
84
+ ;; =========================
85
+
86
+ (scoring
87
+ (mode "fan_system")
88
+ (base_point 1)
89
+ (formula "base * pattern_points * 2^fan")
90
+ )
91
+
92
+ ;; ---- 番型表 ----
93
+ (fan_table
94
+ (stacking "none") ; 武汉麻将特殊积分法
95
+
96
+ ;; 牌型分 (pattern_points)
97
+ (yaku pinghu (pattern_points 1) (category "small") (desc "平胡"))
98
+ (yaku pengpenghu (pattern_points 10) (category "big") (desc "碰碰胡"))
99
+ (yaku qingyise (pattern_points 10) (category "big") (desc "清一色"))
100
+ (yaku fengyise (pattern_points 10) (category "big") (desc "风一色"))
101
+ (yaku jiangyise (pattern_points 10) (category "big") (desc "将一色"))
102
+ (yaku quanqiuren (pattern_points 10) (category "big") (desc "全求人"))
103
+ (yaku gangkai (pattern_points 10) (category "big") (desc "杠上花"))
104
+ (yaku haidilao (pattern_points 10) (category "big") (desc "海底捞"))
105
+ (yaku qianggang (pattern_points 10) (category "big") (desc "抢杠胡"))
106
+
107
+ ;; 番数 (Fan - Exponential)
108
+ ;; 赖子杠、红中杠、硬胡等算番
109
+ )
110
+
111
+ ;; =========================
112
+ ;; 4. 特殊机制
113
+ ;; =========================
114
+
115
+ ;; ---- 赖子/皮子 ----
116
+ (wildcard
117
+ (enabled true)
118
+ (type "laizi")
119
+ (as_any_tile true)
120
+ (can_discard true)
121
+ )
122
+
123
+ (special_mechanics
124
+ (mechanic "PiziKong"
125
+ (category "action")
126
+ (enabled true)
127
+ (phase "play")
128
+ (description "皮子/赖子杠,不算一般杠,算番")
129
+ (transfer_path from: hand to: kong))
130
+ )
131
+
132
+ ;; ---- 承包 ----
133
+ (contract_rules
134
+ (xiayu (enabled true)) ; 下雨
135
+ (quanqiuren_contract (enabled true)) ; 全求人承包
136
+ )
137
+
138
+ (invariants
139
+ (tile_conservation
140
+ (formula "(+ (zone wall) ... ) = 136"))
141
+ )
142
+ )
海底捞月_mGDL_v1.3.txt ADDED
@@ -0,0 +1,138 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (game "HaiDiLaoYue" (version "1.3.0")
2
+ ;; =========================
3
+ ;; 1. 元信息 & 概览
4
+ ;; =========================
5
+
6
+ (game_variant "blood_flow") ; 血流模式
7
+ (rule_profile
8
+ (blood_mode "xueliu")
9
+ (scoring_mode "multiplier") ; 倍数制
10
+ (has_wildcard true) ; 月亮牌? Or just special tiles
11
+ (has_horse false)
12
+ (has_contract false)
13
+ (has_multi_round false)
14
+ (has_ting_system false)
15
+ (has_chicken_system false)
16
+ (has_bean_system false)
17
+ )
18
+
19
+ ;; =========================
20
+ ;; 2. Rule-Core:玩法本体
21
+ ;; =========================
22
+
23
+ (players 4)
24
+ (seats [ "A1" "A2" "A3" "A4" ])
25
+ (turn_order
26
+ (order cyclic A1 A2 A3 A4)
27
+ (on_peng_keep_turn true)
28
+ (on_gang_keep_turn true)
29
+ )
30
+
31
+ ;; ---- 牌组定义 ----
32
+ (tileset
33
+ (suits { "wan" "tong" "tiao" })
34
+ (ranks 1..9)
35
+ (copies 4)
36
+ (honors 1)
37
+ (honor_types { "zhong" "fa" "bai" "dong" "nan" "xi" "bei" })
38
+ (honor_copies 4)
39
+ (flowers 0)
40
+ (special_tiles
41
+ (moon_tiles 12)) ; 12张月亮牌
42
+ (total 148) ; 136 + 12 = 148
43
+ )
44
+
45
+ (phases [ "setup" "deal" "play" "sea_draw" "settle" ])
46
+
47
+ (setup
48
+ (dealer "random")
49
+ (initial_hand 13)
50
+ (choose_que (enabled false))
51
+ (exchange_three (enabled false))
52
+
53
+ (sea_draw
54
+ (enabled true)
55
+ (last_n 12) ; 最后12张月亮牌
56
+ (prohibit_kong true))
57
+ )
58
+
59
+ ;; ---- 行为权限 ----
60
+ (actions
61
+ (allow_chi false)
62
+ (allow_peng true)
63
+ (allow_gang { "concealed" "melded" "added" })
64
+ (one_tile_multi_claim true)
65
+ )
66
+
67
+ ;; ---- 胡牌规则 ----
68
+ (win_rules
69
+ (allow_self_draw_win true)
70
+ (allow_discard_win true)
71
+ (allow_gang_win true)
72
+ (allow_rob_kong true)
73
+ (allow_multi_win true)
74
+
75
+ (post_win_continuation
76
+ (mode "xueliu") ; 胡牌继续
77
+ (winner_exit false)
78
+ (keep_turn_order true)
79
+ )
80
+ )
81
+
82
+ ;; =========================
83
+ ;; 3. Scoring:计分与番型
84
+ ;; =========================
85
+
86
+ (scoring
87
+ (mode "multiplier")
88
+ (base_point 1)
89
+ (self_draw_multiplier 2)
90
+ )
91
+
92
+ ;; ---- 番型表 ----
93
+ (fan_table
94
+ (stacking "multiply")
95
+
96
+ (yaku pinghu (mult 1) (category "basic") (desc "平胡"))
97
+ (yaku pengpenghu (mult 2) (category "special") (desc "碰碰胡"))
98
+ (yaku qingyise (mult 4) (category "special") (desc "清一色"))
99
+ (yaku qidui (mult 4) (category "special") (desc "七对"))
100
+ (yaku longqidui (mult 8) (category "special") (desc "龙七对"))
101
+ (yaku qingpeng (mult 8) (category "special") (desc "清碰"))
102
+ (yaku qingqidui (mult 16) (category "special") (desc "清七对"))
103
+ (yaku qinglongqidui (mult 32) (category "special") (desc "清龙七对"))
104
+
105
+ (yaku gangkai (mult 2) (category "event") (desc "杠开"))
106
+ (yaku gangpao (mult 2) (category "event") (desc "杠炮"))
107
+ (yaku qianggang (mult 2) (category "event") (desc "抢杠"))
108
+ (yaku haidilao (mult 2) (category "event") (desc "海底捞"))
109
+ (yaku gen (mult 2) (category "addon") (desc "根"))
110
+
111
+ (yaku moon_win (mult 2) (category "event") (desc "月亮胡"))
112
+ )
113
+
114
+ ;; =========================
115
+ ;; 4. 特殊机制
116
+ ;; =========================
117
+
118
+ (wildcard
119
+ (enabled true)
120
+ (type "moon")
121
+ (as_any_tile true)
122
+ (can_discard true)
123
+ )
124
+
125
+ (special_mechanics
126
+ (mechanic "MoonDraw"
127
+ (category "phase_rule")
128
+ (enabled true)
129
+ (phase "sea_draw")
130
+ (description "最后12张进入月亮牌流程,可摸月亮牌(赖子)")
131
+ (transfer_path from: wall to: hand))
132
+ )
133
+
134
+ (invariants
135
+ (tile_conservation
136
+ (formula "(+ (zone wall) ... ) = 148"))
137
+ )
138
+ )
疯狂血战_mGDL_v1.3.txt ADDED
@@ -0,0 +1,188 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (game "Sichuan_Bloody_Battle" (version "1.3.0")
2
+ ;; =========================
3
+ ;; 1. 元信息 & 概览
4
+ ;; =========================
5
+
6
+ (game_variant "blood_war")
7
+ (rule_profile
8
+ (blood_mode "xuezhan") ; 血战模式:胡牌不结束,至3家胡或牌完
9
+ (scoring_mode "multiplier") ; 倍数制:2进制 (1, 2, 4, 8...)
10
+ (has_wildcard false)
11
+ (has_horse false)
12
+ (has_contract false)
13
+ (has_multi_round false)
14
+ (has_ting_system false) ; 标准血战无报叫
15
+ (has_chicken_system false)
16
+ (has_bean_system false)
17
+ )
18
+
19
+ ;; =========================
20
+ ;; 2. Rule-Core:玩法本体
21
+ ;; =========================
22
+
23
+ (players 4)
24
+ (seats [ "A1" "A2" "A3" "A4" ])
25
+ (turn_order
26
+ (order cyclic A1 A2 A3 A4)
27
+ (on_peng_keep_turn true)
28
+ (on_gang_keep_turn true)
29
+ )
30
+
31
+ ;; ---- 牌组定义 ----
32
+ (tileset
33
+ (suits { "wan" "tong" "tiao" }) ; 万、筒、条
34
+ (ranks 1..9)
35
+ (copies 4)
36
+ (honors 0) (honor_copies 0) ; 无字牌
37
+ (flowers 0)
38
+ (total 108) ; 9×3×4 = 108张
39
+ )
40
+
41
+ (phases [ "setup" "deal" "choose_que" "play" "settle" ])
42
+
43
+ (setup
44
+ (dealer "random")
45
+ (initial_hand 13)
46
+
47
+ ;; 定缺机制
48
+ (choose_que
49
+ (enabled true)
50
+ (must_keep_under_two_suits_to_win true) ; 胡牌时必须缺一门
51
+ (lock_que true)) ; 定缺后该花色必须打完
52
+
53
+ (exchange_three (enabled false)) ; 标准版通常无换三张,可配置
54
+ )
55
+
56
+ ;; ---- 行为权限 ----
57
+ (actions
58
+ (allow_chi false) ; 不可吃
59
+ (allow_peng true) ; 可碰
60
+ (allow_gang { "concealed" "melded" "added" }) ; 可暗杠、直杠、补杠
61
+ (one_tile_multi_claim true) ; 允许一炮多响
62
+ )
63
+
64
+ ;; ---- 胡牌规则 ----
65
+ (win_rules
66
+ (allow_self_draw_win true)
67
+ (allow_discard_win true)
68
+ (allow_gang_win true)
69
+ (allow_rob_kong true)
70
+ (allow_multi_win true)
71
+
72
+ ;; 硬性限制
73
+ (requirements
74
+ (must_que true) ; 必须缺一门才能胡
75
+ )
76
+
77
+ ;; 血战流程
78
+ (post_win_continuation
79
+ (mode "xuezhan")
80
+ (winner_exit true) ; 胡牌者退出
81
+ (end_when_third_player_wins true) ; 3人胡牌结束
82
+ )
83
+ )
84
+
85
+ ;; =========================
86
+ ;; 3. Scoring:计分与番型
87
+ ;; =========================
88
+
89
+ (scoring
90
+ (mode "multiplier") ; 倍数制
91
+ (base_point 1)
92
+ (self_draw_multiplier 2) ; 自摸加番 (x2)
93
+ (discard_win_multiplier 1) ; 点炮不加番 (x1)
94
+ )
95
+
96
+ ;; ---- 番型表 (2进制倍数) ----
97
+ (fan_table
98
+ (stacking "multiply") ; 倍数叠乘
99
+
100
+ ;; 1番 (2倍)
101
+ (yaku pinghu (mult 1) (category "basic") (desc "平胡(0番=1倍)"))
102
+ (yaku duanyao (mult 2) (category "addon") (desc "断幺九(1番=2倍)"))
103
+ (yaku menqing (mult 2) (category "addon") (desc "门清(1番=2倍)"))
104
+ (yaku gen (mult 2) (category "addon") (desc "根(1番=2倍)"))
105
+
106
+ ;; 2番 (4倍)
107
+ (yaku pengpenghu (mult 4) (category "special") (desc "碰碰胡(2番=4倍)"))
108
+ (yaku qingyise (mult 4) (category "special") (desc "清一色(2番=4倍)"))
109
+ (yaku qianggang (mult 4) (category "event") (desc "抢杠胡(2番=4倍)"))
110
+ (yaku gangkai (mult 4) (category "event") (desc "杠上开花(2番=4倍)"))
111
+ (yaku gangpao (mult 4) (category "event") (desc "杠上炮(2番=4倍)"))
112
+
113
+ ;; 3番 (8倍)
114
+ (yaku qingpeng (mult 8) (category "special") (desc "清碰(3番=8倍)"))
115
+ (yaku qidui (mult 8) (category "special") (desc "七对(3番=8倍)"))
116
+ (yaku daiyao (mult 8) (category "special") (desc "带幺九(3番=8倍)"))
117
+
118
+ ;; 4番 (16倍)
119
+ (yaku longqidui (mult 16) (category "special") (desc "龙七对(4番=16倍)"))
120
+ (yaku qingqidui (mult 16) (category "special") (desc "清七对(4番=16倍)"))
121
+
122
+ ;; 5番 (32倍)
123
+ (yaku qinglongqidui (mult 32) (category "special") (desc "清龙七对(5番=32倍)"))
124
+
125
+ ;; 6番 (64倍)
126
+ (yaku tianhu (mult 64) (category "event") (desc "天胡(6番=64倍)"))
127
+ (yaku dihu (mult 64) (category "event") (desc "地胡(6番=64倍)"))
128
+ )
129
+
130
+ ;; ---- 杠分规则 (刮风下雨) ----
131
+ (kong_rules
132
+ (settle_immediately true) ; 即时结算
133
+
134
+ ;; 刮风 (明杠)
135
+ (melded_kong
136
+ (point_provider_pays 2) ; 点杠者付2倍 (引杠)
137
+ (others_pay 0)) ; 其他人不付
138
+
139
+ (added_kong
140
+ (all_pay 1)) ; 补杠:所有未胡者付1倍 (面下杠)
141
+
142
+ ;; 下雨 (暗杠)
143
+ (concealed_kong
144
+ (all_pay 2)) ; 暗杠:所有未胡者付2倍
145
+ )
146
+
147
+ ;; =========================
148
+ ;; 4. 结算规则
149
+ ;; =========================
150
+
151
+ (settlement
152
+ (score_formula
153
+ (胡分 = "底分 * (番型倍数 * 根倍数 * 自摸倍数)")
154
+ (杠分 = "底分 * 杠倍数")
155
+ (总分 = "胡分 + 杠分")
156
+
157
+ (on_self_draw (payer "all_others"))
158
+ (on_discard (payer "shooter_only"))
159
+ )
160
+
161
+ ;; 查大叫/查花猪
162
+ (on_draw
163
+ (cha_hua_zhu
164
+ (enabled true)
165
+ (penalty "max_possible_score") ; 赔给非花猪玩家极刑(通常16倍或封顶)
166
+ (priority 1)) ; 先查花猪
167
+
168
+ (cha_da_jiao
169
+ (enabled true)
170
+ (penalty "max_possible_score") ; 赔给听牌玩家最大可能番数
171
+ (priority 2)) ; 后查大叫
172
+
173
+ (kong_scores_kept true) ; 杠分不退回
174
+ )
175
+ )
176
+
177
+ ;; =========================
178
+ ;; 5. 守恒不变量
179
+ ;; =========================
180
+
181
+ (invariants
182
+ (tile_conservation
183
+ (formula "(+ (zone wall) (zone hand:A1) ... (zone discard_pile)) = 108"))
184
+ (constraints
185
+ (must_lack_one_suit true) ; 必须缺一门
186
+ (blood_war_mode true))
187
+ )
188
+ )
疯狂血流_mGDL_v1.3.txt ADDED
@@ -0,0 +1,190 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (game "Crazy_Blood_Flow" (version "1.3.0")
2
+ ;; =========================
3
+ ;; 1. 元信息 & 概览
4
+ ;; =========================
5
+
6
+ (game_variant "blood_flow")
7
+ (rule_profile
8
+ (blood_mode "xueliu") ; 血流模式:胡牌不结束,无限胡
9
+ (scoring_mode "multiplier") ; 倍数制:10进制 (1, 10, 100, 1000...)
10
+ (has_wildcard true) ; 有赖子 (红中)
11
+ (has_horse false)
12
+ (has_contract false)
13
+ (has_multi_round false)
14
+ (has_ting_system false)
15
+ (has_chicken_system false)
16
+ (has_bean_system false)
17
+ )
18
+
19
+ ;; =========================
20
+ ;; 2. Rule-Core:玩法本体
21
+ ;; =========================
22
+
23
+ (players 4)
24
+ (seats [ "A1" "A2" "A3" "A4" ])
25
+ (turn_order
26
+ (order cyclic A1 A2 A3 A4)
27
+ (on_peng_keep_turn true)
28
+ (on_gang_keep_turn true)
29
+ )
30
+
31
+ ;; ---- 牌组定义 ----
32
+ (tileset
33
+ (suits { "wan" "tong" "tiao" })
34
+ (ranks 1..9)
35
+ (copies 4)
36
+ (honors 0) (honor_copies 0)
37
+ (flowers 0)
38
+ (hongzhong 6) ; 6个红中 (王者场8个)
39
+ (total 114) ; 108 + 6 = 114张
40
+ )
41
+
42
+ (phases [ "setup" "deal" "choose_que" "play" "settle" ])
43
+
44
+ (setup
45
+ (dealer "random")
46
+ (initial_hand 13)
47
+
48
+ (choose_que
49
+ (enabled true)
50
+ (must_keep_under_two_suits_to_win true)
51
+ (lock_que true))
52
+
53
+ (exchange_three (enabled false))
54
+ )
55
+
56
+ ;; ---- 行为权限 ----
57
+ (actions
58
+ (allow_chi false)
59
+ (allow_peng true)
60
+ (allow_gang { "concealed" "melded" "added" })
61
+ (one_tile_multi_claim true) ; 一炮多响
62
+ (one_tile_multi_use true) ; 一牌多用:可同时被胡和碰杠
63
+ )
64
+
65
+ ;; ---- 胡牌规则 ----
66
+ (win_rules
67
+ (allow_self_draw_win true)
68
+ (allow_discard_win true)
69
+ (allow_gang_win true)
70
+ (allow_rob_kong false) ; 不允许抢杠胡
71
+ (allow_multi_win true)
72
+
73
+ (requirements
74
+ (must_que true)
75
+ )
76
+
77
+ ;; 血流流程
78
+ (post_win_continuation
79
+ (mode "xueliu")
80
+ (winner_exit false) ; 胡牌者不退出,继续摸打
81
+ (keep_turn_order true) ; 顺序不变
82
+ (end_when_wall_empty true) ; 牌墙摸完结束
83
+ )
84
+ )
85
+
86
+ ;; =========================
87
+ ;; 3. Scoring:计分与番型
88
+ ;; =========================
89
+
90
+ (scoring
91
+ (mode "multiplier") ; 倍数制 (10进制)
92
+ (base_point 1)
93
+ (self_draw_multiplier 10) ; 自摸 x10 (疯狂体系特征)
94
+ (discard_win_multiplier 1)
95
+ )
96
+
97
+ ;; ---- 番型表 (10进制倍数) ----
98
+ (fan_table
99
+ (stacking "multiply") ; 倍数叠乘
100
+
101
+ ;; 1番 (10倍)
102
+ (yaku pengpenghu (mult 10) (category "special") (desc "碰碰胡"))
103
+ (yaku quanshuang (mult 10) (category "special") (desc "全双(2/4/6/8)"))
104
+ (yaku quandan (mult 10) (category "special") (desc "全单(1/3/5/7/9)"))
105
+ (yaku sanjiegao (mult 10) (category "special") (desc "三节高"))
106
+ (yaku dayuwu (mult 10) (category "special") (desc "大于五"))
107
+ (yaku xiaoyuwu (mult 10) (category "special") (desc "小于五"))
108
+ (yaku gangkai (mult 10) (category "event") (desc "杠上开花"))
109
+ (yaku gangpao (mult 10) (category "event") (desc "杠上炮"))
110
+ (yaku gen (mult 10) (category "addon") (desc "根"))
111
+
112
+ ;; 2番 (100倍)
113
+ (yaku qingyise (mult 100) (category "special") (desc "清一色"))
114
+ (yaku jingoudiao (mult 100) (category "special") (desc "金钩钓"))
115
+ (yaku sijiegao (mult 100) (category "special") (desc "四节高"))
116
+
117
+ ;; 3番 (1000倍)
118
+ (yaku shierjinchai (mult 1000) (category "special") (desc "十二金钗(3根)"))
119
+
120
+ ;; 4番 (10000倍)
121
+ (yaku wanzhongwushuang (mult 10000) (category "special") (desc "万中无双(13579万)"))
122
+ (yaku shibaluohan (mult 10000) (category "special") (desc "十八罗汉(4根)"))
123
+ (yaku lvyise (mult 10000) (category "special") (desc "绿一色"))
124
+ (yaku dachelun (mult 10000) (category "special") (desc "大车轮"))
125
+
126
+ ;; 5番 (100000倍)
127
+ (yaku daweitianlong (mult 100000) (category "special") (desc "大威天龙(5个同花色序数相连)"))
128
+
129
+ ;; 7番 (10000000倍)
130
+ (yaku tianhu (mult 10000000) (category "event") (desc "天胡"))
131
+ (yaku dihu (mult 10000000) (category "event") (desc "地胡"))
132
+
133
+ ;; 基础牌型 (1倍)
134
+ (yaku pinghu (mult 1) (category "basic") (desc "平胡"))
135
+ )
136
+
137
+ ;; ---- 特殊机制 ----
138
+ (wildcard
139
+ (enabled true)
140
+ (type "hongzhong")
141
+ (as_any_tile true)
142
+ (can_discard true) ; 红中可打出
143
+ (discard_effect ; 打出红中算杠
144
+ (type "kong_score")
145
+ (mult 10)
146
+ (draw_replacement true)) ; 补一张牌
147
+ )
148
+
149
+ ;; ---- 杠分规则 ----
150
+ (kong_rules
151
+ (count_gang_point false) ; 疯狂血流不计杠分 (无金流)
152
+ )
153
+
154
+ ;; =========================
155
+ ;; 4. 结算规则
156
+ ;; =========================
157
+
158
+ (settlement
159
+ (score_formula
160
+ (胡分 = "底分 * 番型倍数 * 自摸倍数")
161
+ (自摸 "收3家")
162
+ (点炮 "点炮者付")
163
+ )
164
+
165
+ ;; 查大叫/查花猪
166
+ (on_draw
167
+ (cha_hua_zhu
168
+ (enabled true)
169
+ (penalty "cap_multiplier") ; 赔封顶倍数
170
+ (priority 1))
171
+
172
+ (cha_da_jiao
173
+ (enabled true)
174
+ (penalty "max_possible_score") ; 赔最大可能倍数
175
+ (priority 2))
176
+ )
177
+ )
178
+
179
+ ;; =========================
180
+ ;; 5. 守恒不变量
181
+ ;; =========================
182
+
183
+ (invariants
184
+ (tile_conservation
185
+ (formula "(+ (zone wall) (zone hand:A1) ... (zone discard_pile)) = 114"))
186
+ (constraints
187
+ (hongzhong_count 6)
188
+ (blood_flow_mode true))
189
+ )
190
+ )
红中麻将_mGDL_v1.3.txt ADDED
@@ -0,0 +1,168 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (game "Hongzhong_Mahjong" (version "1.3.0")
2
+ ;; =========================
3
+ ;; 1. 元信息 & 概览
4
+ ;; =========================
5
+
6
+ (game_variant "round")
7
+ (rule_profile
8
+ (blood_mode "none")
9
+ (scoring_mode "multiplier") ; 倍数制
10
+ (has_wildcard true) ; 红中赖子
11
+ (has_horse true) ; 扎鸟
12
+ (has_contract false)
13
+ (has_multi_round false)
14
+ (has_ting_system false)
15
+ (has_chicken_system false)
16
+ (has_bean_system false)
17
+ )
18
+
19
+ ;; =========================
20
+ ;; 2. Rule-Core:玩法本体
21
+ ;; =========================
22
+
23
+ (players 4)
24
+ (seats [ "A1" "A2" "A3" "A4" ])
25
+ (turn_order
26
+ (order cyclic A1 A2 A3 A4)
27
+ (on_peng_keep_turn true)
28
+ (on_gang_keep_turn true)
29
+ )
30
+
31
+ ;; ---- 牌组定义 ----
32
+ (tileset
33
+ (suits { "wan" "tong" "tiao" })
34
+ (ranks 1..9)
35
+ (copies 4)
36
+ (honors 0) (honor_copies 0)
37
+ (flowers 0)
38
+ (hongzhong 4) ; 4张红中
39
+ (total 112) ; 108 + 4 = 112
40
+ )
41
+
42
+ (phases [ "setup" "deal" "play" "settle" ])
43
+
44
+ (setup
45
+ (dealer "random")
46
+ (initial_hand 13)
47
+ (choose_que (enabled false))
48
+ (exchange_three (enabled false))
49
+
50
+ ;; 漂分
51
+ (piao_score
52
+ (enabled true)
53
+ (mode "pre_game")
54
+ (range [0 1 2 3])) ; 可选漂0-3分
55
+ )
56
+
57
+ ;; ---- 行为权限 ----
58
+ (actions
59
+ (allow_chi false)
60
+ (allow_peng true)
61
+ (allow_gang { "concealed" "melded" "added" })
62
+ (one_tile_multi_claim true)
63
+ )
64
+
65
+ ;; ---- 胡牌规则 ----
66
+ (win_rules
67
+ (allow_self_draw_win true)
68
+ (allow_discard_win false) ; 大多红中麻将只能自摸(抢杠除外)
69
+ (allow_gang_win true)
70
+ (allow_rob_kong true) ; 可抢杠
71
+ (allow_multi_win true)
72
+
73
+ (pattern_specific_constraints
74
+ (hongzhong_single_wait_special true)
75
+ )
76
+
77
+ (post_win_continuation
78
+ (mode "round")
79
+ )
80
+ )
81
+
82
+ ;; =========================
83
+ ;; 3. Scoring:计分与番型
84
+ ;; =========================
85
+
86
+ (scoring
87
+ (mode "multiplier")
88
+ (base_point 1)
89
+ )
90
+
91
+ ;; ---- 番型表 ----
92
+ (fan_table
93
+ (stacking "multiply") ; 倍数叠乘
94
+
95
+ ;; 基础
96
+ (yaku pinghu (mult 1) (category "basic") (desc "平胡"))
97
+ (yaku pengpenghu (mult 2) (category "special") (desc "碰碰胡"))
98
+ (yaku jingoudiao (mult 3) (category "special") (desc "金钩钓"))
99
+ (yaku qidui (mult 3) (category "special") (desc "七对"))
100
+ (yaku qingyise (mult 4) (category "special") (desc "清一色"))
101
+ (yaku longqidui (mult 4) (category "special") (desc "龙七对"))
102
+
103
+ ;; 复合 (可自动计算,也可列出)
104
+ (yaku qingpeng (mult 6) (category "special") (desc "清碰"))
105
+ (yaku qingjingoudiao (mult 7) (category "special") (desc "清金钩钓"))
106
+ (yaku qingqidui (mult 7) (category "special") (desc "清七对"))
107
+ (yaku qinglongdui (mult 10) (category "special") (desc "清龙对"))
108
+
109
+ ;; 红中相关
110
+ (yaku mantanghong (mult 15) (category "special") (desc "满堂红:4个红中"))
111
+ (yaku hongyundangtou (mult 25) (category "special") (desc "鸿运当头:起手4红中"))
112
+
113
+ ;; 额外加成 (Additive or Multiplier) - v1.3 prefers distinct handling
114
+ (yaku zimo (mult 2) (category "event") (desc "自摸加倍")) ; 用mult 2表示x2
115
+ (yaku gangkai (mult 2) (category "event") (desc "杠开加倍"))
116
+ (yaku haidilao (mult 2) (category "event") (desc "海底捞加倍"))
117
+ (yaku yinghu (mult 2) (category "addon") (desc "硬胡:无红中"))
118
+ )
119
+
120
+ ;; =========================
121
+ ;; 4. 特殊机制
122
+ ;; =========================
123
+
124
+ ;; ---- 红中赖子 ----
125
+ (wildcard
126
+ (enabled true)
127
+ (type "hongzhong")
128
+ (as_any_tile true)
129
+ (can_discard true)
130
+ (can_peng_gang false)
131
+ )
132
+
133
+ ;; ---- 飞红中 ----
134
+ (discard_multiplier
135
+ (enabled true)
136
+ (target_tile "红中")
137
+ (effect "per_discard_double") ; 飞1个翻1倍(x2),飞2个x4
138
+ )
139
+
140
+ ;; ---- 扎鸟 ----
141
+ (horse_rules
142
+ (enabled true)
143
+ (mode "bird")
144
+ (count 2) ; 抓2鸟? 4鸟? 视具体规则,这里设为2
145
+ (hit_mapping
146
+ ("1" (mult 1)) ("5" (mult 1)) ("9" (mult 1)) ("hongzhong" (mult 1)))
147
+ (effect "add_score") ; 中鸟加分/倍
148
+ )
149
+
150
+ ;; =========================
151
+ ;; 5. 结算规则
152
+ ;; =========================
153
+
154
+ (settlement
155
+ (score_formula
156
+ (胡分 = "基数 * 番型 * 飞红中 * 扎鸟 * 漂分")
157
+ (on_self_draw (payer "all_others") (count 3)) ;; 没点炮,只有自摸
158
+ )
159
+ (kong_scores_kept true)
160
+ )
161
+
162
+ (invariants
163
+ (tile_conservation
164
+ (formula "(+ (zone wall) ... ) = 112"))
165
+ (constraints
166
+ (hongzhong_count 4))
167
+ )
168
+ )
经典推倒胡_mGDL_v1.3.txt ADDED
@@ -0,0 +1,118 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (game "Classic_TuiDaoHu" (version "1.3.0")
2
+ ;; =========================
3
+ ;; 1. 元信息 & 概览
4
+ ;; =========================
5
+
6
+ (game_variant "round")
7
+ (rule_profile
8
+ (blood_mode "none")
9
+ (scoring_mode "hybrid") ; 混合制
10
+ (has_wildcard false)
11
+ (has_horse true) ; 8马
12
+ (has_contract false)
13
+ (has_multi_round false)
14
+ (has_ting_system false)
15
+ (has_chicken_system false)
16
+ (has_bean_system false)
17
+ )
18
+
19
+ ;; =========================
20
+ ;; 2. Rule-Core:玩法本体
21
+ ;; =========================
22
+
23
+ (players 4)
24
+ (seats [ "A1" "A2" "A3" "A4" ])
25
+ (turn_order
26
+ (order cyclic A1 A2 A3 A4)
27
+ (on_peng_keep_turn true)
28
+ (on_gang_keep_turn true)
29
+ )
30
+
31
+ ;; ---- 牌组定义 ----
32
+ (tileset
33
+ (suits { "wan" "tong" "tiao" })
34
+ (ranks 1..9)
35
+ (copies 4)
36
+ (honors 0)
37
+ (flowers 8) ; 花牌
38
+ (total 116)
39
+ )
40
+
41
+ (phases [ "setup" "deal" "play" "settle" ])
42
+
43
+ (setup
44
+ (dealer "rotate")
45
+ (initial_hand 13)
46
+ (choose_que (enabled false))
47
+ (exchange_three (enabled false))
48
+ )
49
+
50
+ ;; ---- 行为权限 ----
51
+ (actions
52
+ (allow_chi false)
53
+ (allow_peng true)
54
+ (allow_gang { "concealed" "melded" "added" })
55
+ (one_tile_multi_claim false)
56
+ )
57
+
58
+ ;; ---- 胡牌规则 ----
59
+ (win_rules
60
+ (allow_self_draw_win true)
61
+ (allow_discard_win false) ; 只能自摸(或抢杠)
62
+ (allow_gang_win true)
63
+ (allow_rob_kong true)
64
+ (allow_multi_win false)
65
+
66
+ (post_win_continuation
67
+ (mode "round")
68
+ )
69
+ )
70
+
71
+ ;; =========================
72
+ ;; 3. Scoring:计分与番型
73
+ ;; =========================
74
+
75
+ (scoring
76
+ (mode "hybrid")
77
+ (base_point 1)
78
+ )
79
+
80
+ ;; ---- 番型表 ----
81
+ (fan_table
82
+ (stacking "add") ; 叠加
83
+
84
+ ;; 简易推倒胡通常只有几个基础番型
85
+ (yaku zimo (mult 1) (category "event") (desc "自摸"))
86
+ (yaku gangkai (mult 1) (category "event") (desc "杠开"))
87
+ (yaku qianggang (mult 1) (category "event") (desc "抢杠"))
88
+ (yaku haidilao (mult 1) (category "event") (desc "海底捞"))
89
+
90
+ (yaku pengpenghu (mult 1) (category "pattern") (desc "碰碰胡"))
91
+ (yaku qingyise (mult 1) (category "pattern") (desc "清一色"))
92
+ (yaku qidui (mult 1) (category "pattern") (desc "七对"))
93
+ )
94
+
95
+ ;; =========================
96
+ ;; 4. 特殊机制
97
+ ;; =========================
98
+
99
+ ;; ---- 买马 ----
100
+ (horse_rules
101
+ (enabled true)
102
+ (mode "horse")
103
+ (count 8) ; 8马
104
+ (draw_from "external_deck")
105
+ (effect "add_score") ; 中一个加底分?
106
+ (hit_mapping ("rank 1/5/9 or flower" (mult 1)))
107
+ )
108
+
109
+ ;; ---- 承包 ----
110
+ (contract_rules
111
+ (gang_bao_contract (enabled true))
112
+ )
113
+
114
+ (invariants
115
+ (tile_conservation
116
+ (formula "(+ (zone wall) ... ) = 116"))
117
+ )
118
+ )
贵州捉鸡麻将_mGDL_v1.3.txt ADDED
@@ -0,0 +1,219 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (game "Guizhou_Zhuoji_Mahjong" (version "1.3.0")
2
+ ;; =========================
3
+ ;; 1. 元信息 & 概览
4
+ ;; =========================
5
+
6
+ (game_variant "round")
7
+ (rule_profile
8
+ (blood_mode "none")
9
+ (scoring_mode "hybrid") ; 混合制:豆分+鸡牌分+番型分+事件分
10
+ (has_wildcard false)
11
+ (has_horse false)
12
+ (has_contract false)
13
+ (has_multi_round false)
14
+ (has_ting_system true) ; 有报听系统
15
+ (has_chicken_system true) ; 有鸡牌系统
16
+ (has_bean_system true) ; 有豆/通行证系统
17
+ )
18
+
19
+ ;; =========================
20
+ ;; 2. Rule-Core:玩法本体
21
+ ;; =========================
22
+
23
+ (players 4)
24
+ (seats [ "A1" "A2" "A3" "A4" ])
25
+ (turn_order
26
+ (order cyclic A1 A2 A3 A4)
27
+ (on_peng_keep_turn true)
28
+ (on_gang_keep_turn true)
29
+ )
30
+
31
+ ;; ---- 牌组定义 ----
32
+ (tileset
33
+ (suits { "wan" "tong" "tiao" })
34
+ (ranks 1..9)
35
+ (copies 4)
36
+ (honors 0) (honor_copies 0)
37
+ (flowers 0)
38
+ (total 108)
39
+ )
40
+
41
+ (phases [ "setup" "deal" "play" "settle" ])
42
+
43
+ (setup
44
+ (dealer "random")
45
+ (initial_hand 13)
46
+ (exchange_three (enabled false))
47
+
48
+ ;; 捉鸡牌(胡牌后翻)
49
+ (flip_chicken
50
+ (enabled true)
51
+ (timing "after_win")
52
+ (source "wall_first") ; 翻牌墙第1张
53
+ (rule "plus_one_with_cycle") ; 翻牌+1为翻牌鸡,9->1循环
54
+ )
55
+ )
56
+
57
+ ;; ---- 行为权限 ----
58
+ (actions
59
+ (allow_chi false)
60
+ (allow_peng true)
61
+ (allow_gang { "concealed" "melded" "added" })
62
+ (one_tile_multi_claim true)
63
+ (ting_no_kong true) ; 报听后不可开杠
64
+ )
65
+
66
+ ;; ---- 胡牌规则 ----
67
+ (win_rules
68
+ (allow_self_draw_win true)
69
+ (allow_discard_win true)
70
+ (allow_gang_win true)
71
+ (allow_rob_kong true)
72
+ (allow_multi_win true)
73
+
74
+ ;; 胡牌条件
75
+ (requirements
76
+ (discard_win_needs_bean_or_sha_bao true) ; 点炮胡平胡需豆或杀报
77
+ )
78
+
79
+ (post_win_continuation
80
+ (mode "round") ; 一局一胡
81
+ )
82
+ )
83
+
84
+ ;; =========================
85
+ ;; 3. Scoring:计分与番型
86
+ ;; =========================
87
+
88
+ (scoring
89
+ (mode "hybrid")
90
+ (base_point 1)
91
+
92
+ ;; 统计规则
93
+ (calculation_rules
94
+ (bean_scoring "additive") ; 豆分:加法
95
+ (chicken_scoring "additive") ; 鸡牌分:加法
96
+ (fan_scoring "max_only") ; 番型分:仅取最大
97
+ (event_scoring "additive")) ; 事件分:加法(可叠加)
98
+ )
99
+
100
+ ;; ---- 番型表 (混合制) ----
101
+ (fan_table
102
+ (stacking "none") ; 番型不叠加,仅取最大
103
+
104
+ ;; 番型分 (Category: pattern)
105
+ (yaku pinghu (mult 3) (category "pattern") (desc "平胡"))
106
+ (yaku daduizi (mult 10) (category "pattern") (desc "大对子"))
107
+ (yaku qingyise (mult 15) (category "pattern") (desc "清一色"))
108
+ (yaku qidui (mult 15) (category "pattern") (desc "七对"))
109
+ (yaku longqidui (mult 30) (category "pattern") (desc "龙七对"))
110
+ (yaku qingdadui (mult 25) (category "pattern") (desc "清大对"))
111
+ (yaku qingqidui (mult 30) (category "pattern") (desc "清七对"))
112
+ (yaku qinglongbei (mult 45) (category "pattern") (desc "清龙背"))
113
+
114
+ ;; 事件分 (Category: event) - 可叠加
115
+ (yaku gangkai (mult 6) (category "event") (desc "杠上开花"))
116
+ (yaku qianggang (mult 15) (category "event") (desc "抢杠胡"))
117
+ (yaku baoting (mult 15) (category "event") (desc "报听"))
118
+ (yaku shabao (mult 15) (category "event") (desc "杀报"))
119
+ (yaku repao (mult 6) (category "event") (desc "热炮"))
120
+ )
121
+
122
+ ;; =========================
123
+ ;; 4. 特殊机制
124
+ ;; =========================
125
+
126
+ ;; ---- 鸡牌系统 ----
127
+ (chicken_system
128
+ (enabled true)
129
+
130
+ ;; 固定鸡牌
131
+ (fixed_chickens [
132
+ (tile "1条" (mult 1) (name "幺鸡"))
133
+ (tile "8筒" (mult 1) (name "乌骨鸡"))
134
+ ])
135
+
136
+ ;; 翻牌鸡
137
+ (flip_chicken
138
+ (enabled true)
139
+ (rule "plus_one")
140
+ (cycle_on_nine true)
141
+ (mult 1))
142
+
143
+ ;; 特殊鸡牌
144
+ (chicken_types
145
+ (golden_chicken (condition "flip_is_1tiao") (mult 3) (name "金鸡"))
146
+ (charge_chicken (condition "first_discard_not_claimed") (mult 3) (name "冲锋鸡"))
147
+ (responsibility_chicken (condition "first_discard_claimed") (mult 3) (name "责任鸡"))
148
+ )
149
+
150
+ ;; 包鸡规则
151
+ (bao_chicken
152
+ (enabled true)
153
+ (condition "non_ready_player") ; 未叫嘴玩家
154
+ (include_revealed_only true) ; 仅包已亮出的鸡牌
155
+ )
156
+ )
157
+
158
+ ;; ---- 豆/通行证系统 ----
159
+ (bean_system
160
+ (enabled true)
161
+
162
+ (bean_types
163
+ (concealed_bean (mult 3) (payer "all") (name "闷豆"))
164
+ (melded_bean (mult 3) (payer "all") (name "爬坡豆"))
165
+ (pointed_bean (mult 3) (payer "pointer") (name "点豆"))
166
+ )
167
+
168
+ (bean_as_pass true) ; 有豆才能胡点炮平胡
169
+
170
+ (bao_bean
171
+ (enabled true)
172
+ (condition "non_ready_player") ; 未叫嘴玩家反赔
173
+ (reverse_payment true)) ; 收取变为支付
174
+ )
175
+
176
+ ;; =========================
177
+ ;; 5. 结算规则
178
+ ;; =========================
179
+
180
+ (settlement
181
+ (on_win
182
+ (formula "每个玩家得分 = 豆分结算 + 鸡牌结算 + 倍数结算")
183
+ (independent_settlement true) ; 玩家之间独立结算
184
+
185
+ ;; 豆分结算
186
+ (bean_settlement
187
+ (闷豆 "基数 * 3,收3家")
188
+ (点豆 "基数 * 3,仅点豆者支付"))
189
+
190
+ ;; 鸡牌结算
191
+ (chicken_settlement
192
+ (formula "AB双方鸡牌分 = 基数 *(双方的鸡牌倍数和)"))
193
+
194
+ ;; 倍数结算
195
+ (fan_settlement
196
+ (condition "仅胡牌玩家和未胡牌玩家之间")
197
+ (formula "未胡牌玩家输分 = 基数 *(番型倍数 + 事件倍数)"))
198
+ )
199
+
200
+ (on_draw
201
+ (non_ready_penalty
202
+ (pays_ready_max_fan true) ; 未听牌包听牌玩家理论最大番型分
203
+ (bao_own_chicken_bean true)) ; 包自己的鸡、杠分
204
+ )
205
+ )
206
+
207
+ ;; =========================
208
+ ;; 6. 守恒不变量
209
+ ;; =========================
210
+
211
+ (invariants
212
+ (tile_conservation
213
+ (formula "(+ (zone wall) (zone hand:A1) ... (zone discard_pile)) = 108"))
214
+ (constraints
215
+ (has_chicken_system true)
216
+ (has_bean_system true)
217
+ (complex_settlement true))
218
+ )
219
+ )
长沙麻将_mGDL_v1.3.txt ADDED
@@ -0,0 +1,140 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (game "ChangSha_Mahjong" (version "1.3.0")
2
+ ;; =========================
3
+ ;; 1. 元信息 & 概览
4
+ ;; =========================
5
+
6
+ (game_variant "round")
7
+ (rule_profile
8
+ (blood_mode "none")
9
+ (scoring_mode "hybrid") ; 混合制
10
+ (has_wildcard false)
11
+ (has_horse true) ; 扎鸟
12
+ (has_contract false)
13
+ (has_multi_round true)
14
+ (has_ting_system false)
15
+ (has_chicken_system false)
16
+ (has_bean_system false)
17
+ )
18
+
19
+ ;; =========================
20
+ ;; 2. Rule-Core:玩法本体
21
+ ;; =========================
22
+
23
+ (players 4)
24
+ (seats [ "A1" "A2" "A3" "A4" ])
25
+ (turn_order
26
+ (order cyclic A1 A2 A3 A4)
27
+ (on_peng_keep_turn true)
28
+ (on_gang_keep_turn true)
29
+ )
30
+
31
+ ;; ---- 牌组定义 ----
32
+ (tileset
33
+ (suits { "wan" "tong" "tiao" })
34
+ (ranks 1..9)
35
+ (copies 4)
36
+ (honors 0)
37
+ (flowers 0)
38
+ (total 108)
39
+ )
40
+
41
+ (phases [ "setup" "deal" "play" "sea_draw" "settle" ])
42
+
43
+ (setup
44
+ (dealer "rotate")
45
+ (initial_hand 13)
46
+ (choose_que (enabled false))
47
+ (exchange_three (enabled false))
48
+
49
+ (sea_draw
50
+ (enabled true)
51
+ (last_n 1)
52
+ (pass_cycle true)
53
+ (prohibit_kong true))
54
+ )
55
+
56
+ ;; ---- 行为权限 ----
57
+ (actions
58
+ (allow_chi true)
59
+ (allow_peng true)
60
+ (allow_gang { "concealed" "melded" "added" })
61
+ (one_tile_multi_claim true)
62
+ (claim_priority "gang>peng>bu>chi")
63
+ )
64
+
65
+ ;; ---- 胡牌规则 ----
66
+ (win_rules
67
+ (allow_self_draw_win true)
68
+ (allow_discard_win true)
69
+ (allow_gang_win true)
70
+ (allow_rob_kong true)
71
+ (allow_multi_win true)
72
+
73
+ (requirements
74
+ (small_hand_pair_must_be_258 true) ; 小胡258将
75
+ )
76
+
77
+ (post_win_continuation
78
+ (mode "round")
79
+ )
80
+ )
81
+
82
+ ;; =========================
83
+ ;; 3. Scoring:计分与番型
84
+ ;; =========================
85
+
86
+ (scoring
87
+ (mode "hybrid")
88
+ (base_point 1)
89
+ )
90
+
91
+ ;; ---- 番型表 ----
92
+ (fan_table
93
+ (stacking "multiply") ; 倍数叠乘
94
+
95
+ ;; 起手胡
96
+ (yaku qishou_sixi (mult 1) (category "special") (desc "起手四喜"))
97
+ (yaku qishou_66shun (mult 1) (category "special") (desc "起手六六顺"))
98
+ (yaku qishou_queyise (mult 1) (category "special") (desc "起手缺一色"))
99
+ (yaku qishou_banbanhu (mult 1) (category "special") (desc "起手板板胡"))
100
+
101
+ ;; 小胡
102
+ (yaku pinghu (mult 1) (category "basic") (desc "平胡"))
103
+
104
+ ;; 大胡
105
+ (yaku pengpenghu (mult 6) (category "special") (desc "碰碰胡"))
106
+ (yaku jiangjianghu (mult 6) (category "special") (desc "将将胡"))
107
+ (yaku qingyise (mult 6) (category "special") (desc "清一色"))
108
+ (yaku qidui (mult 6) (category "special") (desc "七对"))
109
+ (yaku quanqiuren (mult 6) (category "special") (desc "全求人"))
110
+ (yaku haohuaqidui (mult 12) (category "special") (desc "豪华七对"))
111
+ (yaku shuanghaoqidui (mult 18) (category "special") (desc "双豪华七对"))
112
+ (yaku sanhaoqidui (mult 24) (category "special") (desc "三豪华七对"))
113
+
114
+ ;; 事件
115
+ (yaku gangkai (mult 6) (category "event") (desc "杠开"))
116
+ (yaku qianggang (mult 6) (category "event") (desc "抢杠"))
117
+ (yaku gangpao (mult 6) (category "event") (desc "杠炮"))
118
+ (yaku haidilao (mult 6) (category "event") (desc "海底捞"))
119
+ (yaku tianhu (mult 6) (category "event") (desc "天胡"))
120
+ )
121
+
122
+ ;; =========================
123
+ ;; 4. 特殊机制
124
+ ;; =========================
125
+
126
+ ;; ---- 扎鸟 ----
127
+ (horse_rules
128
+ (enabled true)
129
+ (mode "bird")
130
+ (count 2)
131
+ (draw_from "wall_end")
132
+ (hit_mapping ("rank 1/5/9" (mult 1)))
133
+ (effect "multiplier")
134
+ )
135
+
136
+ (invariants
137
+ (tile_conservation
138
+ (formula "(+ (zone wall) ... ) = 108"))
139
+ )
140
+ )