456 lines
13 KiB
Plaintext
456 lines
13 KiB
Plaintext
[gd_resource type="Resource" script_class="BoardGenTable" load_steps=2 format=3]
|
||
|
||
[ext_resource type="Script" path="res://data/schemas/board_gen_table.gd" id="1"]
|
||
|
||
[resource]
|
||
script = ExtResource("1")
|
||
rows = [{
|
||
"level_index": 1,
|
||
"node_depth": 0,
|
||
"board_width": 10,
|
||
"board_height": 10,
|
||
"mine_density": 0.25,
|
||
"inferability_target": 0.88,
|
||
"solver_rules": "single_subset",
|
||
"min_safe_count": 50,
|
||
"max_gen_attempts": 16,
|
||
"board_type": "dungeon",
|
||
"shave_ring_radius": 1,
|
||
"r0_max_cap": 45
|
||
}, {
|
||
"level_index": 1,
|
||
"node_depth": 1,
|
||
"board_width": 10,
|
||
"board_height": 10,
|
||
"mine_density": 0.25,
|
||
"inferability_target": 0.88,
|
||
"solver_rules": "single_subset",
|
||
"min_safe_count": 50,
|
||
"max_gen_attempts": 16,
|
||
"board_type": "dungeon",
|
||
"shave_ring_radius": 1,
|
||
"r0_max_cap": 45
|
||
}, {
|
||
"level_index": 1,
|
||
"node_depth": 2,
|
||
"board_width": 10,
|
||
"board_height": 10,
|
||
"mine_density": 0.25,
|
||
"inferability_target": 0.88,
|
||
"solver_rules": "single_subset",
|
||
"min_safe_count": 50,
|
||
"max_gen_attempts": 16,
|
||
"board_type": "dungeon",
|
||
"shave_ring_radius": 1,
|
||
"r0_max_cap": 45
|
||
}, {
|
||
"level_index": 1,
|
||
"node_depth": 3,
|
||
"board_width": 10,
|
||
"board_height": 10,
|
||
"mine_density": 0.25,
|
||
"inferability_target": 0.88,
|
||
"solver_rules": "single_subset",
|
||
"min_safe_count": 50,
|
||
"max_gen_attempts": 16,
|
||
"board_type": "dungeon",
|
||
"shave_ring_radius": 1,
|
||
"r0_max_cap": 45
|
||
}, {
|
||
"level_index": 1,
|
||
"node_depth": 4,
|
||
"board_width": 12,
|
||
"board_height": 12,
|
||
"mine_density": 0.25,
|
||
"inferability_target": 0.88,
|
||
"solver_rules": "single_subset",
|
||
"min_safe_count": 60,
|
||
"max_gen_attempts": 24,
|
||
"board_type": "dungeon",
|
||
"shave_ring_radius": 1,
|
||
"r0_max_cap": 43
|
||
}, {
|
||
"level_index": 1,
|
||
"node_depth": 5,
|
||
"board_width": 12,
|
||
"board_height": 12,
|
||
"mine_density": 0.25,
|
||
"inferability_target": 0.88,
|
||
"solver_rules": "single_subset",
|
||
"min_safe_count": 60,
|
||
"max_gen_attempts": 24,
|
||
"board_type": "dungeon",
|
||
"shave_ring_radius": 1,
|
||
"r0_max_cap": 43
|
||
}, {
|
||
"level_index": 1,
|
||
"node_depth": 6,
|
||
"board_width": 12,
|
||
"board_height": 12,
|
||
"mine_density": 0.25,
|
||
"inferability_target": 0.88,
|
||
"solver_rules": "single_subset",
|
||
"min_safe_count": 60,
|
||
"max_gen_attempts": 24,
|
||
"board_type": "dungeon",
|
||
"shave_ring_radius": 1,
|
||
"r0_max_cap": 43
|
||
}, {
|
||
"level_index": 2,
|
||
"node_depth": 0,
|
||
"board_width": 12,
|
||
"board_height": 12,
|
||
"mine_density": 0.25,
|
||
"inferability_target": 0.88,
|
||
"solver_rules": "single_subset",
|
||
"min_safe_count": 60,
|
||
"max_gen_attempts": 24,
|
||
"board_type": "underdark",
|
||
"shave_ring_radius": 1,
|
||
"r0_max_cap": 43
|
||
}, {
|
||
"level_index": 2,
|
||
"node_depth": 1,
|
||
"board_width": 12,
|
||
"board_height": 12,
|
||
"mine_density": 0.25,
|
||
"inferability_target": 0.88,
|
||
"solver_rules": "single_subset",
|
||
"min_safe_count": 60,
|
||
"max_gen_attempts": 24,
|
||
"board_type": "underdark",
|
||
"shave_ring_radius": 1,
|
||
"r0_max_cap": 43
|
||
}, {
|
||
"level_index": 2,
|
||
"node_depth": 2,
|
||
"board_width": 12,
|
||
"board_height": 12,
|
||
"mine_density": 0.25,
|
||
"inferability_target": 0.88,
|
||
"solver_rules": "single_subset",
|
||
"min_safe_count": 60,
|
||
"max_gen_attempts": 24,
|
||
"board_type": "underdark",
|
||
"shave_ring_radius": 1,
|
||
"r0_max_cap": 43
|
||
}, {
|
||
"level_index": 2,
|
||
"node_depth": 3,
|
||
"board_width": 12,
|
||
"board_height": 12,
|
||
"mine_density": 0.25,
|
||
"inferability_target": 0.88,
|
||
"solver_rules": "single_subset",
|
||
"min_safe_count": 60,
|
||
"max_gen_attempts": 24,
|
||
"board_type": "underdark",
|
||
"shave_ring_radius": 1,
|
||
"r0_max_cap": 43
|
||
}, {
|
||
"level_index": 2,
|
||
"node_depth": 4,
|
||
"board_width": 12,
|
||
"board_height": 12,
|
||
"mine_density": 0.25,
|
||
"inferability_target": 0.88,
|
||
"solver_rules": "single_subset",
|
||
"min_safe_count": 60,
|
||
"max_gen_attempts": 24,
|
||
"board_type": "underdark",
|
||
"shave_ring_radius": 1,
|
||
"r0_max_cap": 43
|
||
}, {
|
||
"level_index": 2,
|
||
"node_depth": 5,
|
||
"board_width": 12,
|
||
"board_height": 12,
|
||
"mine_density": 0.25,
|
||
"inferability_target": 0.88,
|
||
"solver_rules": "single_subset",
|
||
"min_safe_count": 60,
|
||
"max_gen_attempts": 24,
|
||
"board_type": "underdark",
|
||
"shave_ring_radius": 1,
|
||
"r0_max_cap": 43
|
||
}, {
|
||
"level_index": 2,
|
||
"node_depth": 6,
|
||
"board_width": 12,
|
||
"board_height": 12,
|
||
"mine_density": 0.25,
|
||
"inferability_target": 0.88,
|
||
"solver_rules": "single_subset",
|
||
"min_safe_count": 60,
|
||
"max_gen_attempts": 24,
|
||
"board_type": "underdark",
|
||
"shave_ring_radius": 1,
|
||
"r0_max_cap": 43
|
||
}, {
|
||
"level_index": 2,
|
||
"node_depth": 7,
|
||
"board_width": 12,
|
||
"board_height": 12,
|
||
"mine_density": 0.25,
|
||
"inferability_target": 0.88,
|
||
"solver_rules": "single_subset",
|
||
"min_safe_count": 60,
|
||
"max_gen_attempts": 24,
|
||
"board_type": "underdark",
|
||
"shave_ring_radius": 1,
|
||
"r0_max_cap": 43
|
||
}, {
|
||
"level_index": 2,
|
||
"node_depth": 8,
|
||
"board_width": 12,
|
||
"board_height": 12,
|
||
"mine_density": 0.25,
|
||
"inferability_target": 0.88,
|
||
"solver_rules": "single_subset",
|
||
"min_safe_count": 60,
|
||
"max_gen_attempts": 24,
|
||
"board_type": "underdark",
|
||
"shave_ring_radius": 1,
|
||
"r0_max_cap": 43
|
||
}, {
|
||
"level_index": 2,
|
||
"node_depth": 9,
|
||
"board_width": 12,
|
||
"board_height": 12,
|
||
"mine_density": 0.25,
|
||
"inferability_target": 0.88,
|
||
"solver_rules": "single_subset",
|
||
"min_safe_count": 60,
|
||
"max_gen_attempts": 24,
|
||
"board_type": "underdark",
|
||
"shave_ring_radius": 1,
|
||
"r0_max_cap": 43
|
||
}, {
|
||
"level_index": 3,
|
||
"node_depth": 0,
|
||
"board_width": 13,
|
||
"board_height": 13,
|
||
"mine_density": 0.25,
|
||
"inferability_target": 0.88,
|
||
"solver_rules": "single_subset",
|
||
"min_safe_count": 70,
|
||
"max_gen_attempts": 32,
|
||
"board_type": "deep_underdark",
|
||
"shave_ring_radius": 1,
|
||
"r0_max_cap": 51
|
||
}, {
|
||
"level_index": 3,
|
||
"node_depth": 1,
|
||
"board_width": 13,
|
||
"board_height": 13,
|
||
"mine_density": 0.25,
|
||
"inferability_target": 0.88,
|
||
"solver_rules": "single_subset",
|
||
"min_safe_count": 70,
|
||
"max_gen_attempts": 32,
|
||
"board_type": "deep_underdark",
|
||
"shave_ring_radius": 1,
|
||
"r0_max_cap": 51
|
||
}, {
|
||
"level_index": 3,
|
||
"node_depth": 2,
|
||
"board_width": 13,
|
||
"board_height": 13,
|
||
"mine_density": 0.25,
|
||
"inferability_target": 0.88,
|
||
"solver_rules": "single_subset",
|
||
"min_safe_count": 70,
|
||
"max_gen_attempts": 32,
|
||
"board_type": "deep_underdark",
|
||
"shave_ring_radius": 1,
|
||
"r0_max_cap": 51
|
||
}, {
|
||
"level_index": 3,
|
||
"node_depth": 3,
|
||
"board_width": 13,
|
||
"board_height": 13,
|
||
"mine_density": 0.25,
|
||
"inferability_target": 0.88,
|
||
"solver_rules": "single_subset",
|
||
"min_safe_count": 70,
|
||
"max_gen_attempts": 32,
|
||
"board_type": "deep_underdark",
|
||
"shave_ring_radius": 1,
|
||
"r0_max_cap": 51
|
||
}, {
|
||
"level_index": 3,
|
||
"node_depth": 4,
|
||
"board_width": 13,
|
||
"board_height": 13,
|
||
"mine_density": 0.25,
|
||
"inferability_target": 0.88,
|
||
"solver_rules": "single_subset",
|
||
"min_safe_count": 70,
|
||
"max_gen_attempts": 32,
|
||
"board_type": "deep_underdark",
|
||
"shave_ring_radius": 1,
|
||
"r0_max_cap": 51
|
||
}, {
|
||
"level_index": 3,
|
||
"node_depth": 5,
|
||
"board_width": 13,
|
||
"board_height": 13,
|
||
"mine_density": 0.25,
|
||
"inferability_target": 0.88,
|
||
"solver_rules": "single_subset",
|
||
"min_safe_count": 70,
|
||
"max_gen_attempts": 32,
|
||
"board_type": "deep_underdark",
|
||
"shave_ring_radius": 1,
|
||
"r0_max_cap": 51
|
||
}, {
|
||
"level_index": 3,
|
||
"node_depth": 6,
|
||
"board_width": 13,
|
||
"board_height": 13,
|
||
"mine_density": 0.25,
|
||
"inferability_target": 0.88,
|
||
"solver_rules": "single_subset",
|
||
"min_safe_count": 70,
|
||
"max_gen_attempts": 32,
|
||
"board_type": "deep_underdark",
|
||
"shave_ring_radius": 1,
|
||
"r0_max_cap": 51
|
||
}, {
|
||
"level_index": 3,
|
||
"node_depth": 7,
|
||
"board_width": 13,
|
||
"board_height": 13,
|
||
"mine_density": 0.25,
|
||
"inferability_target": 0.88,
|
||
"solver_rules": "single_subset",
|
||
"min_safe_count": 70,
|
||
"max_gen_attempts": 32,
|
||
"board_type": "deep_underdark",
|
||
"shave_ring_radius": 1,
|
||
"r0_max_cap": 51
|
||
}, {
|
||
"level_index": 3,
|
||
"node_depth": 8,
|
||
"board_width": 13,
|
||
"board_height": 13,
|
||
"mine_density": 0.25,
|
||
"inferability_target": 0.88,
|
||
"solver_rules": "single_subset",
|
||
"min_safe_count": 70,
|
||
"max_gen_attempts": 32,
|
||
"board_type": "deep_underdark",
|
||
"shave_ring_radius": 1,
|
||
"r0_max_cap": 51
|
||
}, {
|
||
"level_index": 3,
|
||
"node_depth": 9,
|
||
"board_width": 14,
|
||
"board_height": 14,
|
||
"mine_density": 0.25,
|
||
"inferability_target": 0.88,
|
||
"solver_rules": "single_subset",
|
||
"min_safe_count": 82,
|
||
"max_gen_attempts": 32,
|
||
"board_type": "deep_underdark",
|
||
"shave_ring_radius": 1,
|
||
"r0_max_cap": 59
|
||
}, {
|
||
"level_index": 3,
|
||
"node_depth": 10,
|
||
"board_width": 14,
|
||
"board_height": 14,
|
||
"mine_density": 0.25,
|
||
"inferability_target": 0.88,
|
||
"solver_rules": "single_subset",
|
||
"min_safe_count": 82,
|
||
"max_gen_attempts": 32,
|
||
"board_type": "deep_underdark",
|
||
"shave_ring_radius": 1,
|
||
"r0_max_cap": 59
|
||
}, {
|
||
"level_index": 3,
|
||
"node_depth": 11,
|
||
"board_width": 14,
|
||
"board_height": 14,
|
||
"mine_density": 0.25,
|
||
"inferability_target": 0.88,
|
||
"solver_rules": "single_subset",
|
||
"min_safe_count": 82,
|
||
"max_gen_attempts": 32,
|
||
"board_type": "deep_underdark",
|
||
"shave_ring_radius": 1,
|
||
"r0_max_cap": 59
|
||
}, {
|
||
"level_index": 3,
|
||
"node_depth": 12,
|
||
"board_width": 14,
|
||
"board_height": 14,
|
||
"mine_density": 0.25,
|
||
"inferability_target": 0.88,
|
||
"solver_rules": "single_subset",
|
||
"min_safe_count": 82,
|
||
"max_gen_attempts": 32,
|
||
"board_type": "deep_underdark",
|
||
"shave_ring_radius": 1,
|
||
"r0_max_cap": 59
|
||
}, {
|
||
"level_index": 3,
|
||
"node_depth": 13,
|
||
"board_width": 14,
|
||
"board_height": 14,
|
||
"mine_density": 0.25,
|
||
"inferability_target": 0.88,
|
||
"solver_rules": "single_subset",
|
||
"min_safe_count": 82,
|
||
"max_gen_attempts": 32,
|
||
"board_type": "deep_underdark",
|
||
"shave_ring_radius": 1,
|
||
"r0_max_cap": 59
|
||
}]
|
||
|
||
; 切片调参登记(SLICE-TUNED provisional,调参所有权仍归 C3):
|
||
; A1 GDD 参考行(d0.10/0.12)经"先布后删"环内移除后仅幸存 2-3 雷、R0/|S|约0.97、残余挖掘 2-4 格——
|
||
; 掘近退化板(A2 反例 B 机制的低密度放大)。实验数据(8 种子均值,smoke/experiment_density.gd):
|
||
; d0.25 → L1 幸存雷 11/残余 13/inf 0.925/att 2.9 · L2 雷 19/残余 21/inf 0.908/att 7.9(seed42 实测 inf 0.889→target 定 0.88 首过),零降级告警。
|
||
; target 收窄至 0.88/0.88(不低于 0.85 绝对锚)为密度上移的对价——B1 条款③⑤对账重跑义务随调参触发。
|
||
; 2026-09-11 关卡扩展批:L1 增 D1–D4 行(Boss=Dmax=4)。
|
||
; Boss 板以 12×12 区分(d0.28/t0.87 实测达不到推理率门槛——best≈0.81 降级告警,回退 0.25/0.88;
|
||
; 密度轴上调留给 C3 与求解器能力一起解)。
|
||
;
|
||
; 分支节点图批(2026-09-17——L2 幽暗地域板行铺满,全值 provisional 归 难度曲线与Boss):
|
||
; L2 战斗/Boss 节点 (2, 0/1/4/5/6/7/8) 七行精确铺满(跨表校验强制——ConfigDB ④ level_node_dangling);
|
||
; 奖励点 (2,2)/恢复点 (2,3) 不开战斗、无板行(跨表校验只查 battle/boss 节点)。
|
||
; 板面参数与 L1 高档同值(12×12 d0.25 t0.88)——密度/推理率轴差异化留给 难度曲线与Boss 调参批;
|
||
; board_type 词表 v1.0(2026-09-19 用户拍板):L1=dungeon 地牢基线 / L2=underdark 幽暗地域(玩家侧显示名「地图类型」);域校验在 board_gen_table.gd 词表常量。
|
||
;
|
||
; 第三关内容批(2026-09-20):板面 13×13 / Boss 14×14 兑现「Boss 板 = 本关最大板形」纪律;
|
||
; 密度维持 0.25(0.28 破推理率门槛有失败先例——切片调参登记 best≈0.81 降级告警,加难主杠杆 = 板面 + 地形);
|
||
; 词表第三值 deep_underdark(灰矮人矿道方向——v1.1 2026-09-20 L3 内容批,显示名归呈现侧);
|
||
; min_safe_count 按既有 ~0.42 格占比外推(13×13 → 70 / 14×14 → 82)。
|
||
; 降档登记:Boss max_gen_attempts 批内拟值 36 越 schema 域 [1,32](config_fatal 修行值纪律——不许放宽 schema),
|
||
; 按域上限取 32(批内降档梯子「Boss 回 13×13 时 attempts 32」同款值)。行值全 provisional 归 难度曲线与Boss。
|
||
;
|
||
; 商店房批连带(2026-09-21——level.tres 商店房批 Boss 重编号 8→9):新增 (2,9)/(3,9) 精确行
|
||
; (跨表校验强制——ConfigDB ④ level_node_dangling),行值照抄原 Boss (L,8) 行;
|
||
; 商店房 (L,8) 不开战斗、无板行(跨表校验只查 battle/boss 节点)。行值 provisional 归 难度曲线与Boss。
|
||
; 陈旧行清理(GP+商店房实施批收尾 2026-09-21):并行表代理曾把 Boss 板行照抄到 (2,8)/(3,8)——节点 8 现为
|
||
; 商店房、无板行需求,原 (2,8)/(3,8) 行成陈旧冗余已删(删前核 (·,9) 行在位且内容与被删行逐字段一致);
|
||
; 本行集迁移 = Boss 重编号 8→9 的商店房批连带。
|
||
;
|
||
; Package B 迭代·第 6 轮·d3 改板试点(2026-09-22——用户提出并授权,破 §4.4 板面冻结的单行试点):
|
||
; (1,3) 第一关·节点3·熊地精双雄 板 12×12→10×10(min_safe_count 60→50、max_gen_attempts 24→16,
|
||
; 对齐 (1,0)/(1,1) 的 10×10 行)。依据:第 5 轮读数 d3 完成度 84% 中 83.2pp 系 R₀ 免费展开、实挖仅
|
||
; ~18 格/3.7 轮——总血 28-42 撑不起 121 格精英板;缩板后同战斗量读数 (68.6+18)/87≈100% 回带,
|
||
; 清图率升(打完近全翻开,清图尖峰 24-40 伤可兑现),轮数/承伤/胜率预计不动(难度刀≠设计意图修复)。
|
||
; 连带义务:board_calibration.csv 全量重跑 calibrate_boards(§4.4 预告)。provisional 未提交。
|
||
;
|
||
; 板尺寸策略改判批(2026-09-24——用户拍板「小怪板统一 10×10」原则,取代第 6 轮「板随战斗时长」原则):
|
||
; 第 6 轮单行缩板在 L1 内造出 10→10→12→10→12 锯齿——弱怪长战配大板、强怪速战配小板,节奏倒挂
|
||
; (用户实测定罪:第三场单只熊地精 50 血占 12×12、第四场三只强怪占 10×10)。本批 L1 小怪场统一 10×10:
|
||
; d2 12×12→10×10(min_safe_count 60→50、max_gen_attempts 24→16,对齐本关其余小怪行);
|
||
; **boss d4 维持 12×12 不动**(首次实施时误将 boss 板一并缩小,用户纠正后回滚——boss 场更大=
|
||
; 战斗逐渐变难的视觉收束,板序列 10/10/10/10/12 单调递增)。
|
||
; 战斗轮数由怪血量与玩家输出决定、与板大小无关=难度中性;完成度分母/清图率变化连带 board_calibration
|
||
; 全量重跑。L2 全 12×12 / L3 全 13×13(boss 14×14 单调收尾)本原则下无需动。provisional 未提交。
|