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>
This commit is contained in:
cabinw
2026-09-14 20:08:25 +08:00
co-authored by Claude Opus 5
parent 83796804d0
commit 8d766b6f06
2 changed files with 25 additions and 7 deletions
+11
View File
@@ -0,0 +1,11 @@
[
{ "name": "起步 · 小盘看清规则", "count": 6, "rotations": [3], "maxDensity": 0.28 },
{ "name": "清空的手感", "count": 6, "rotations": [3], "minDensity": 0.36 },
{ "name": "变奏 · 深一点", "count": 5, "rotations": [4, 5] },
{ "name": "再来一盘满的", "count": 7, "rotations": [3], "minDensity": 0.40 },
{ "name": "中段 · 稀而绕", "count": 6, "rotations": [3], "maxDensity": 0.30 },
{ "name": "变奏 · 深锁", "count": 5, "rotations": [4, 5] },
{ "name": "后段 · 满盘", "count": 7, "rotations": [3], "minDensity": 0.42 },
{ "name": "收束前的深锁", "count": 4, "rotations": [4, 5] },
{ "name": "终章 · 最满的一盘", "count": 4, "rotations": [3], "minDensity": 0.44 }
]