Typo - 儿童趣味打字练习
When to Use
- 用户要求为孩子创建打字练习或打字游戏
- 用户提到"键盘练习""拼音打字""typing practice"等关键词
- 家长或老师需要互动式的打字教学工具
- 需要生成可自定义内容的打字练习页面
When NOT to Use
- 用户只是询问打字技巧或指法知识(直接回答即可)
- 用户需要的是专业打字测试软件(如 TypingClub 替代品)
- 用户要求的是编程代码输入练习
Core Principles
- 游戏化优先:所有练习以闯关形式呈现,保持孩子兴趣
- 即时反馈:逐字符高亮显示对错,配合音效和动画
- 渐进难度:从单字母/单字到长句,难度平滑递增
- 双模式覆盖:英文打字练键盘布局,中文拼音练输入速度
- 离线运行:生成的 HTML 文件完全自包含,无需网络
快速开始
将 assets/typing-game.html 复制到用户工作目录,用浏览器打开即可运行。无需安装任何依赖。
typo/
├── SKILL.md # 本文件
├── scripts/
│ └── license.py # 激活码生成与验证工具
├── assets/
│ └── typing-game.html # 游戏主文件(自包含 HTML)
└── references/
└── content-guide.md # 内容指南:难度分级与素材库
子命令参考
生成激活码
python scripts/license.py generate 10 # 生成 10 个激活码
python scripts/license.py generate 1 # 生成 1 个激活码
输出激活码格式为 TYPO-XXXXX-XXXXX-XXXXX,同时保存到 activation-codes.txt。
验证激活码
python scripts/license.py verify TYPO-XXXXX-XXXXX-XXXXX
返回验证结果(有效/无效)。
定制游戏内容
修改 assets/typing-game.html 中的 GAME_DATA 对象:
const GAME_DATA = {
english: [
{ name: "L1: Letters", pool: ["abcd", "efgh", "ijkl", ...] }
],
chinese: [
{ name: "第一关:单字", pool: [
{ text: "你", pinyin: "ni" },
{ text: "好", pinyin: "hao" },
...
]}
]
};
定制规则:
- 英文模式:pool 为字符串数组,用户直接输入显示的文本
- 中文模式:pool 为 { text, pinyin } 对象数组,text 显示汉字,pinyin 为输入目标(不带声调,音节间用空格分隔)
- 每关题池 15-20 个题目,游戏每次从中随机抽取 8 题(ITEMS_PER_LEVEL 可调)
- 每 10 关为一个难度级别,共 5 个级别(入门→词汇→短句→长句→挑战 / 入门→词语→成语→古诗→古文)
- 总计 100 关(英文 50 关 + 中文 50 关),题库 1500+ 题
- 随机抽题使用 Fisher-Yates 洗牌算法,每次重玩题目不同
- 参照 references/content-guide.md 获取难度分级建议和素材库
安全机制
激活码安全
- 基于 HMAC-SHA256 离线验证,无需网络连接
- 密钥内嵌于代码中,存在被逆向工程的理论风险
- 适用于开源项目赞助场景,非商业级安全需求
数据隐私
- 所有练习数据(进度、统计、激活状态)存储在浏览器 localStorage 中
- 数据完全本地,不上传任何外部服务
- 清除浏览器数据将丢失进度,可使用专业版导出功能备份
激活码系统参数
| 参数 | 值 |
|---|---|
| 算法 | HMAC-SHA256 |
| 格式 | TYPO-XXXXX-XXXXX-XXXXX |
| 字符集 | ABCDEFGHJKMNPQRSTUVWXYZ23456789(去除易混淆字符) |
| 验证方式 | 离线,Web Crypto API (浏览器端) / hmac (Python端) |
依赖说明
- 运行时:现代浏览器(支持 Web Crypto API,Chrome 60+ / Firefox 75+ / Edge 79+ / Safari 11+)
- 激活码工具:Python 3.6+(标准库,无第三方依赖)
- 无外部依赖:HTML 文件内嵌全部 CSS 和 JavaScript
版本说明
| 功能 | 免费版 | 专业版 |
|---|---|---|
| 英文打字关卡 | 前 10 关 | 全部 50 关 |
| 中文拼音关卡 | 前 10 关 | 全部 50 关 |
| 难度级别分组 | 1 级(入门) | 5 级(入门→挑战) |
| 每关随机抽题 | ✅ | ✅ |
| 题库总题数 | 1500+ | 1500+ |
| 实时字符反馈 | ✅ | ✅ |
| 星级评价系统 | ✅ | ✅ |
| 连击积分系统 | ✅ | ✅ |
| 音效与动画 | ✅ | ✅ |
| 进度本地保存 | ✅ | ✅ |
| 全部关卡解锁 | ❌ | ✅ |
| 自定义练习内容 | ❌ | ✅ |
| 历史统计记录 | ❌ | ✅ |
| 速度趋势分析 | ❌ | ✅ |
| 进度数据导出 | ❌ | ✅ |
| 获取方式 | SkillHub 直接安装 | 激活码解锁 |
资源文件
| 文件 | 用途 |
|---|---|
assets/typing-game.html |
游戏主文件,浏览器直接打开运行 |
scripts/license.py |
激活码生成与验证 CLI 工具 |
references/content-guide.md |
内容指南:难度分级、素材库、定制建议 |