Commit Graph
2 Commits
Author SHA1 Message Date
cabinwandClaude Opus 5 7607f48cb1 feat(levels): boards whose interior is packed and whose rim is left empty
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>
2026-09-15 00:23:18 +08:00
cabinwandClaude Opus 5 8d766b6f06 feat(levels): plan the second fifty as alternating crowded and deep boards
A crowded board and a deep lock cannot be the same level — at five turns with
eight pieces per orientation, 16 of 18 candidates fail the release gate, because
pieces packed in leave no room for a turn to open two of them. So the campaign
alternates the two instead of ramping one: crowded stretches for the pleasure of
clearing a full board, deep stretches as the variation between them, and the
last four are the fullest boards in the set.

24 crowded, 14 deep, 12 sparse-and-shallow to open on. Density climbs across the
crowded stretches (0.36 → 0.40 → 0.42 → 0.44) since that is the axis left once
depth is spoken for.

select-50 takes --id and --name so this edition is built beside the first rather
than over it; the fifty already played stay exactly as they are.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 20:08:25 +08:00