# 数字一笔 · 独立200关版本
直接打开 [index.html](index.html) 或 `NumberSwipe-200关DEMO.html`。包含200关,所有关卡开放;20章各10关。原53关DEMO及原NumberSwipe项目均不修改。独立存档键 `variant:campaign-200:v1`,不会覆盖53关进度。
## 关卡与教学
在机制首次出现时安排极简教学:第1关基本覆盖、第3关大块、第5关异形、第7关墙、第11关横通道、第13关竖通道、第15关拐角、第21关双色、第31关奇偶、第41关步进门、第51关六边、第61关未知起点。每个教学仅3–6格。练习、组合挑战、回落与收束穿插,后续不引入未经验证的新规则。
保留并重编原50个正式关卡,另制作150关(含12个教学)。支持方形单位格与大块混合、通道+双色/奇偶、墙+门、六边+双色/奇偶+墙+门以及无固定起点的双色+奇偶。方向通道标记仍放在方形单位格内,按指定两侧进出,可反向;大块不画内部缝;门通过前随落格切换、合法穿过后保持开启,撤销穿门一步时恢复切换;仅退回上一格撤销一步。
每关唯一完整有序解,每项新约束都必须能改变解集合。几何、位置与线索一起去重,排除仅旋转/镜像/交换颜色的重复练习;教学中横竖对照保留。难度柱高来自策划目标,不代表真人实测。建议记录首次错误、回退、提示与口述推理来继续调整。
- `DIFFICULTY.html`:200关目标曲线与逐关规则,可点柱定位。
- `DESIGN.html` / `DESIGN.md`:作者解、关键分叉与解除约束的反例。
- `levels.json`:试玩题库;`plan.json`:逐关编排目标。
- `reports/validation.json`:唯一性、必要性、教学与隔离校验。
## 音效
沿用53关版本的柔和正弦音色。普通移动频率为 `523 × 2^((当前步号−1)/12)` Hz,每落一格升一个半音。撤回后重走按当前步号恢复音高,重开重新计算;快速连画也不跳过音阶。正确到达指定数字、错误、撤回、重开和过关的音高、时序、包络保持原样。特殊事件音效优先,仍按当前步号计算下一次普通移动音高。
首次点按启动音频,顶栏可静音;设备不支持音频不影响游戏。已继承窄屏、短屏、横屏与安全区适配。自动脚本和Canvas验证不代替真机触感、扬声器音量及系统字体排版验收。
## 构建与验证
无需第三方依赖,Node 22及以上:
```
node tools/generate.mjs
node tools/build.mjs
node tools/design-pages.mjs
node tools/overview.mjs
node --test tests/*.test.mjs
node tools/validate.mjs
```
生成器支持从design.json检查点继续。生成物均在本目录;试玩HTML不读取作者解或外部运行文件。
手机独立服务使用 `tools/serve-mobile.mjs`,端口17851;53关原服务17850保持原样。手机和电脑需同Wi-Fi,电脑须开机且服务运行。不同网址的浏览器记录分别保存。