迭代46卡C(棋盘格边长口径收口批v2.0): 格边长算式单点化——board_view抽static _cell_for逐位同式(SEP/DEPTH_PX读本文件常量·clampi[26,46]留函数内·S13顶格27/31持平零新增成员)+set_cell_area改调·副作用尾链零动(行为零变化)·探针阈值判据退役(MIN_CELL常量整行删除·阈值断言换等价断言cell==_cell_for(n,bv.size)·_board内部字段直查受控例外=N无公开出口·PASS行含基座实读+13/14推定留痕打印不作判红·零尺寸前置记红)·单元冒烟扩四档板型((L,D)取样10/12/13/14·板型一致+算式单点等价两断言·既有网格高与26-46区间断言逐字保留·62→74checks全绿)·探针两档绿(基座实读40px·13/14推定30/28与卡§2.7锚点逐值一致·全屏46/46·可用面积1022x454/1662x734)·grep MIN_CELL/可读门槛/可读下限全仓零命中·probe_gate默认段绿

This commit is contained in:
DKChan committed 2026-11-01 02:53:31 +08:00
1 parent 5269ed4080
commit e3e206d0f5
3 files changed
+57 -17

No files matched your search

+13 -5
View File
@@ -51,21 +51,29 @@ func _mk_stream(stream_name: String, scope: int) -> RandomNumberGenerator:
# 公式 N×cell ≤ 可用高−12 必须计入 (N−1)×2px 网格间距,否则网格实高溢出被 clip_contents 裁掉;
# 现公式 = 计入间距 + 垂直预留 24px〔上 12/下 12——底部不贴 D 区边框〕)----
func _smoke_layout_cell_formula() -> void:
print("--- 棋盘布局格边长公式(底部预留回归)---")
print("--- 棋盘布局格边长公式(底部预留回归·四档板型)---")
var board_generator = load("res://core/board_generator.gd").new()
var board_view = load("res://presentation/views/board_view.gd").new()
for L in [1, 2]:
var b = board_generator.generate(L, 0, _mk_stream("board_gen", 555), _db)
var board_view_script := load("res://presentation/views/board_view.gd")
# 四档取样表(board_gen.tres 实表取档——(L,D)→尺寸:10/12/13/14;13×13 与 14×14 首次入断言)
var tiers := [{"L": 1, "D": 0, "n": 10}, {"L": 2, "D": 0, "n": 12}, {"L": 3, "D": 0, "n": 13}, {"L": 3, "D": 9, "n": 14}]
for t_v in tiers:
var t: Dictionary = t_v
var b = board_generator.generate(int(t["L"]), int(t["D"]), _mk_stream("board_gen", 555), _db)
board_view.rebuild(b, null)
var avail := Vector2(1036, 460) # 受约束 D 区可用面积样本(1280×800 档量级——用户实测裁切场景)
board_view.set_cell_area(avail)
var n: int = maxi(b.width, b.height)
var cell: float = board_view.get("_cell")
var grid_h := n * int(cell) + (n - 1) * 2
Kit.check("L%d %dx%d 板网格高 %d ≤ 可用高 %d − 预留 24(格边 %dpx——下缘不贴边不裁切)" % [L, b.width, b.height, grid_h, int(avail.y), int(cell)],
Kit.check("L%d D%d 板型一致(%dx%d = 取样 %d——表改动致取样落错档即红)〔格边长 V3〕" % [int(t["L"]), int(t["D"]), b.width, b.height, int(t["n"])],
n == int(t["n"]))
Kit.check("L%d D%d %dx%d 板网格高 %d ≤ 可用高 %d − 预留 24(格边 %dpx——下缘不贴边不裁切)〔格边长 V3〕" % [int(t["L"]), int(t["D"]), b.width, b.height, grid_h, int(avail.y), int(cell)],
grid_h <= int(avail.y) - 24)
Kit.check("L%d 格边在 26–46 档内(%dpx)" % [L, int(cell)],
Kit.check("L%d D%d 格边在 26–46 档内(%dpx)〔格边长 V3〕" % [int(t["L"]), int(t["D"]), int(cell)],
cell >= 26.0 and cell <= 46.0)
Kit.check("L%d D%d 算式单点等价(set_cell_area 写入 %d == _cell_for 返回 %d——同一事实两路读取)〔格边长 V2〕" % [int(t["L"]), int(t["D"]), int(cell), board_view_script._cell_for(n, avail)],
int(cell) == board_view_script._cell_for(n, avail))
board_view.free()