The game has never had a board you simply clear out, and the request for one turned out to need a construction of its own rather than a denser deep lock. Filling cells at random can never work: a packed board has nothing that can move — measured over forty random fills of a 37-cell board, zero pieces free in all six orientations, every time, because a piece steps to the next cell before it can leave and on a full board that cell is taken. So packBoard builds backwards. Start empty, add only a piece that could leave right now, and the placement order reversed is a removal order — solvability becomes a property of the construction. Which cell to fill next decides everything: at random it stalls near half, while filling the most constrained cell first takes a 19-cell interior to 96% and fills it outright. The rim is deliberately empty. Those pieces leave first and ask nothing, and clearing from the rim inward gives a packed board its own difficulty curve inside one level — the outer cells read easily, and it tightens as it opens. Two things were tried against the ceiling and failed, and are recorded as such: depth-first backtracking made it worse on both counts (65-78% filled against greedy's 89%, at 2000-3000 seconds a board) because recomputing every cell's legal directions per node spends the budget three levels deep. And the audit's dead-turn gate could not be trusted here at all — on a packed board its breadth search truncates, so it certified levels the rule bot then walked through three blind turns in a row. The pool is filtered by playing it instead: a full pass takes one second and does not lie. The campaign is 32 packed levels to 18 deep locks, alternating, with the closing six at a completely full interior. Same rule bot, both editions: worst blind streak 1 either way, dead taps zero, and half again as much to do per level. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
12 lines
760 B
JSON
12 lines
760 B
JSON
[
|
|
{ "name": "起步 · 小满盘", "count": 6, "packed": true, "maxCells": 37 },
|
|
{ "name": "深锁初见", "count": 4, "rotations": [3], "packed": false, "maxDensity": 0.28 },
|
|
{ "name": "满盘 · 由外向内", "count": 7, "packed": true },
|
|
{ "name": "变奏 · 深一点", "count": 5, "rotations": [4, 5], "packed": false },
|
|
{ "name": "大满盘", "count": 7, "packed": true, "minCells": 61 },
|
|
{ "name": "中段 · 稀而绕", "count": 4, "rotations": [3], "packed": false, "maxDensity": 0.30 },
|
|
{ "name": "满盘 · 转得更深", "count": 6, "packed": true, "minRotations": 3 },
|
|
{ "name": "收束前的深锁", "count": 5, "rotations": [4, 5], "packed": false },
|
|
{ "name": "终章 · 最满的几盘", "count": 6, "packed": true, "minFill": 1 }
|
|
]
|