feat: DSL字段 wildcard_rules.meld_mode (standard/any)
之前: 特殊风牌组合是'隐式规则',硬编码在type=random检查中 现在: YAML声明 meld_mode: any (南昌麻将),引擎检查并报告不支持 WildcardConfig新增MeldMode字段(默认standard): - standard: 仅顺子/刻子/对子(引擎支持) - any: 任意3张可配面子(南昌麻将,引擎不支持) --check: meld_mode=any → '引擎未实现→仅支持standard' 规则从'隐式'变为DSL可表达的显式规则
This commit is contained in:
@ -196,10 +196,11 @@ public class CapabilityRegistry
|
||||
|
||||
// 冲关/德国: 仅南昌麻将骰子翻牌定精相关
|
||||
if (rules.WildcardRules?.Type == "random")
|
||||
{
|
||||
warnings.Add("骰子翻牌定精: 冲关(精数×2^N)/德国(无精胡)计分规则引擎未实现");
|
||||
warnings.Add("骰子翻牌定精: 引擎仅支持标准面子(顺子/刻子/对子)→特殊风牌组合不支持");
|
||||
}
|
||||
|
||||
// Wildcard meld mode: 引擎仅支持standard(顺子/刻子/对子)
|
||||
if (rules.WildcardRules?.MeldMode == "any")
|
||||
warnings.Add("wildcard_rules.meld_mode=any 引擎未实现→仅支持standard(顺子/刻子/对子)");
|
||||
|
||||
// === 引擎功能边界警告: DSL可配置但引擎不支持或部分支持 ===
|
||||
|
||||
@ -304,6 +305,7 @@ public class WildcardConfig
|
||||
{
|
||||
public string Type { get; set; } = "";
|
||||
public string Behavior { get; set; } = "";
|
||||
public string MeldMode { get; set; } = "standard"; // standard=仅顺子/刻子/对子, any=任意3张可配面子(南昌麻将)
|
||||
public int WildcardEncoding { get; set; } = 50;
|
||||
public int RandomCount { get; set; } = 2; // random type: how many next-tiles are 精 (1=正精 only, 2=正精+副精)
|
||||
public List<string>? Tiles { get; set; }
|
||||
|
||||
@ -27,6 +27,7 @@ deal:
|
||||
# 翻到X,则X+1为正精,X+2为副精。字牌按序循环。
|
||||
wildcard_rules:
|
||||
type: random
|
||||
meld_mode: any
|
||||
random_count: 2
|
||||
wildcard_encoding: 50
|
||||
behavior: substitute
|
||||
|
||||
Reference in New Issue
Block a user