2.0 KiB
2.0 KiB
第二轮规则数据
活跃玩法为 direction、block-alternation、walls、rhythm-door、hex-alternation,各8关。放弃的玩法和旧接口资料见archive/v1。
每包含mode/title/rule/levels;单关含id/mode/geometry/difficulty/title/caption/cells。方格和大格用x/y/w/h,异形shape为相对单位坐标;六边用q/r;clue是可选固定步号。
当前机制字段
- 格direction:
lr左右、du上下、ru上右、dr右下、dl下左、lu左上。字符串按边字母排序。连接是双向,不能是端点。离开格后根据前后邻格相对于本格的方位判断。 - 格category:
circle是蓝,triangle是橙。颜色全程保留,整块一步。连续节点必须异类。 - walls:
[[格id,格id],...]。永久封闭的真实共边,无向,不占格。 - doors:
[{edge:[格id,格id],initialOpen:false}],最多一道。已落t格时,开状态为initialOpen与(t%2)的异或;起点计入t。穿门判断使用出发前t,落格后t+1。撤销重算,不维护会漂移的独立相位。
规则接口
graph给原始几何邻接;constraints展开可单独解除的新机制;directionAt返回当前进出边配对;doorOpen给指定路径长度时门位;edgeBlocked检查永久墙与当前门;canAppend检查操作合法性;violations检查数字与机制冲突;solve枚举完整合法路径;hint处理正确前缀与回退;assertStructure检查数据。
solve({limit:2,omit:约束key})用于逐项必要性证明。永久墙从求解邻接删去,切换门保留在潜在连通图中,仅移动时检查,避免把未来能打开的门当作永久墙误剪。预算耗尽抛错,不视为唯一。
墙与门必须位于真实共边,同一边不允许重复配置。六边融合分别解除颜色机制和每堵墙,均需至少两解。
各玩法使用自己的规则和界面副本,无跨玩法运行依赖、无原项目运行依赖。作者解与必要性反例只在设计资料和报告中,不在关卡或试玩包中。