game: name: 国标麻将 type: mahjong engine_type: mahjong players: { min: 4, max: 4 } requires: - deck.generator_mahjong - deck.flower_cards - meldsolver.standard_win - meldsolver.seven_pairs - meldsolver.thirteen_orphans - meldsolver.all_orphans - meldsolver.double_dragon - phase.mahjong_turn - phase.priority_arbitration - scoring.fan_exclusion deck: generator: mahjong include_honors: true include_flowers: true total: 144 deal: cards_per_player: 13 dealer_extra: 1 flower_rules: on_draw: replace_and_draw scoring: normal: 1 matching: value: 1 mapping: 1: [春, 梅] 2: [夏, 兰] 3: [秋, 竹] 4: [冬, 菊] win_min_fan: 8 fan_stacking: add_max fan_types: # 88番 - { name: 大四喜, base_fan: 88, level: 12, excludes: [圈风, 门风, 三风] } - { name: 大三元, base_fan: 88, level: 12, excludes: [双箭刻] } - { name: 十三幺, base_fan: 88, level: 12, excludes: [五门齐, 门前清, 单钓将, 混幺九] } - { name: 连七对, base_fan: 88, level: 12, excludes: [七对, 门前清, 单钓将, 清一色, 无字] } # 64番 - { name: 小四喜, base_fan: 64, level: 11, excludes: [三风] } - { name: 小三元, base_fan: 64, level: 11, excludes: [双箭刻] } - { name: 字一色, base_fan: 64, level: 11, excludes: [碰碰和, 全带幺, 混幺九, 缺一门] } # 48番 - { name: 一色四同顺, base_fan: 48, level: 10, excludes: [一色三同顺, 四归一, 一般高] } # 24番 - { name: 清一色, base_fan: 24, level: 8, excludes: [无字, 缺一门] } - { name: 七对, base_fan: 24, level: 8, excludes: [门前清, 单钓将] } - { name: 全双, base_fan: 24, level: 8 } # 12番 - { name: 全大, base_fan: 12, level: 6 } - { name: 全中, base_fan: 12, level: 6 } - { name: 全小, base_fan: 12, level: 6 } # 8番 - { name: 大于五, base_fan: 8, level: 5 } - { name: 小于五, base_fan: 8, level: 5 } # 6番 - { name: 碰碰和, base_fan: 6, level: 4, conflicts: [七对] } - { name: 混一色, base_fan: 6, level: 4, excludes: [缺一门] } - { name: 五门齐, base_fan: 6, level: 4 } - { name: 全求人, base_fan: 6, level: 4 } # 4番 - { name: 全带幺, base_fan: 4, level: 3, excludes: [缺一门] } # 2番 - { name: 断幺九, base_fan: 2, level: 2 } - { name: 平和, base_fan: 2, level: 2 } - { name: 门前清, base_fan: 2, level: 2 } # 2番 - { name: 圈风, base_fan: 2, level: 2 } - { name: 门风, base_fan: 2, level: 2 } - { name: 四归一, base_fan: 2, level: 2 } # 1番 - { name: 缺一门, base_fan: 1, level: 1 } - { name: 无字, base_fan: 1, level: 1 } - { name: 单钓将, base_fan: 1, level: 1 } # 兜底 - { name: 鸡胡, base_fan: 1, level: 0 } phases: - name: deal type: auto action: deal_cards_with_flowers next: play - name: play type: mahjong_turn turn_order: counter_clockwise sub_phases: draw: type: auto action: draw_card on_draw_flower: replace on_empty_deck: exhausted self_action: options: - { action: discard } - { action: an_kong } - { action: bu_kong, condition: has_punged_pair } - { action: win, condition: can_win_tumo_and_fan_ge_8 } others_reaction: options: - { action: chi, priority: 1, condition: can_chi } - { action: pung, priority: 2, condition: has_two_same } - { action: ming_kong, priority: 3, condition: has_three_same } - { action: win, priority: 4, condition: can_win_and_fan_ge_8 } - { action: pass, priority: 0 } priority_policy: highest_wins on_win: game_over end_conditions: - { type: player_wins, action: settle } - { type: deck_exhausted, action: draw_game } - name: settle type: auto action: calculate_scores next: null scoring: mode: fan_table max_cap: 999