# 第 2 关开发文档:1-2 右手基准键 JKL; 对应规划:`分关难度规划.md` → 第 1 章 · 基准键入门 → **1-2**。 完全复用第 1 关引擎、页面、判定、音效与进度存储。**只改键位与文案。** 细则见 `开发文档-第1关.md`,本文只写差异。 --- ## 1. 与 1-1 的差异 | 项 | 1-1 | 1-2 | |----|-----|-----| | 字符集 | `a s d f` | `j k l ;` | | 手 | 左手 | 右手 | | 键盘启用键 | ASDF | JKL; | | 通关后解锁 | 1-2 | 1-3 | 其余全部相同:40 键、连续同一字符不超过 3 次、打错不前进、Backspace 无效、正确率 ≥ 90%(最多错 4 次)、不卡速度、强制显示键盘、卡通配色、打对/打错音效、`localStorage` 键名 `typing-progress-v1`。 --- ## 2. 指法映射 与左手镜像,同色表示同一根手指类型: | 键 | 手指 | 颜色(与 1-1 对应) | |----|------|---------------------| | `J` | 右手食指 | 蓝(同 F) | | `K` | 右手中指 | 绿(同 D) | | `L` | 右手无名指 | 黄(同 S) | | `;` | 右手小指 | 橙(同 A) | --- ## 3. 关卡配置 ```js { id: "1-2", chapter: 1, title: "右手基准键 JKL;", charset: ["j", "k", "l", ";"], length: 40, allowSpace: false, caseSensitive: true, passAccuracy: 0.90, passKpm: null, unlockNext: "1-3", showKeyboard: true, generate: "random-from-charset", playable: true } ``` `;` 使用 `event.key === ";"`。Shift 产生的 `:` 视为错误。 --- ## 4. 文案 | 位置 | 文案 | |------|------| | 选关卡片标题 | 1-2 右手基准键 | | 选关卡片副标 | 只打 J K L ;,正确率 90% 即可通关 | | 练习顶栏 | 第 2 关 · 右手基准键 JKL; | | 指法提示 | 食指放 J,小指放分号。请看着屏幕,不要看键盘。 | | 键盘下方 | 右手:食指 J · 中指 K · 无名指 L · 小指 ; | | 通关 | 通关!右手基准键已经记住了。 | | 未通关 | 再练一次。先求正确,再求速度。 | | 解锁提示 | 已解锁 1-3 左右交替 | --- ## 5. 解锁 - 通关 1-1 后 1-2 可进入(已有逻辑) - 通关 1-2 后写入 `unlocked: 1-3`;1-3 本关仍不实现玩法,仅解锁外观 - 重打失败不锁回 --- ## 6. 验收(相对 1-1 增量) - [ ] 题目仅含 `j k l ;`,长度 40 - [ ] 键盘仅 JKL; 高亮可用,其余禁用 - [ ] 通关 1-1 后可点进 1-2 - [ ] 正确率 ≥ 90% 通关并解锁 1-3 - [ ] 判定、音效、结算与 1-1 一致