小学英语趣味闯关学习台
把小学英语的四大模块(音标/拼读 → 单词 → 句型 → 语法时态)编排成 6 大世界 × 18 关的游戏闯关,
让小学生在「打怪升级」中完成听辨、拼写、句法、时态的系统训练。
何时使用
- 需要为小学生准备游戏化的英语练习(课堂PK、课后自学、社团活动)
- 需要音标/自然拼读练习——认48个国际音标、辨清浊音、掌握字母组合与 Magic e
- 需要单词专项训练——听音辨词、音标配词、拼写、词义、词性、例句
- 需要句型句法讲解与练习——公式拆解、变形(陈述→否定→疑问)、语境应用、找错改错
- 需要时态语法专项——一般现在时、现在进行时、一般过去时、一般将来时、现在完成时
- 需要生成可打印的练习卷、单词表、音标表
- 需要查询小学英语知识点(对错题、备课时即时检索)
核心设计理念
1. 闯关而非题库
关卡按认知递进编排:先能读能认(L1-2 音标)→ 再能说能用(L3 句型)→ 最后综合运用(L6 挑战)。
每关答对 60% 通关、80% 得 2 星、100% 得 3 星,形成即时反馈的正向激励。
2. 干扰项必须同域
出题时干扰项来自同一知识域(同为元音、同为动物、同类词性),而非随机凑数。
否则学生会靠「排除荒谬选项」蒙对,测不出真实水平。
3. 每题必有解析
题库不是「选 A/B/C/D」,每题都带为什么的讲解:口诀、规则、易错点。
答错时结算页集中回顾,形成错题闭环。
4. 目标字母必须有明确标识
音标题干中凡是提到"目标字母/划线字母",都必须在例词里把对应字母黄底划线标出,
让学生一眼看到要考的是哪个字母。标识目标由数据层的 hlTarget 字段显式给出
(音标→字母的映射表 + 字母组合表反查双保险),不依赖前端猜测,因此 100% 命中。
5. 同一关卡不重复考同一个词
关卡构建时做两层去重:题干+选项完全相同的题只留一道;题干引用的例词
(「xxx」形式)已被前面题型用过的直接跳过。配合每个音标配 3 个例词,
「选音标」与「听音选音标」两类题型天然错开,学生不会觉得题目雷同。
6. 不使用原生 confirm/alert
原生 confirm() 在 iframe 预览面板等沙箱环境中会抛 SecurityError,
异常冒泡会中断整个点击处理链,表现就是「按钮点了没反应」;
部分环境禁用时返回 undefined,也会被当成「用户取消」而静默失败。
一律改用 confirmDialog() 自建弹层(返回 Promise),它在任何环境都能工作,
样式也与工作台统一。新增交互确认时同样遵守这条。
两套运行形态
形态一:浏览器工作台(学生自学,首选)
cd <技能目录>/assets/workbench
python -m http.server 8899 --bind 127.0.0.1
访问 http://127.0.0.1:8899/index.html。
五个界面:
- 🗺️ 闯关地图 —— 6 大世界 18 关,按星级解锁,展示难度与奖励;
每个世界标题下含「教学指引」模块(教学目标 / 教学重点 / 教学难点 / 课堂建议 /
核心技能 / 闯关收获 / 建议课时),面向教师备课参考
- 🎮 答题 —— 12 类题型,即时对错反馈、连击加成、语音朗读、错题高亮
- 🏆 结算 —— 星级评定、错题回顾、徽章解锁、撒花动画
- 🏅 徽章墙 —— 10 枚成就徽章
- 📚 词库速查 —— 音标/单词/句型/语法全库检索,点词即发音
适合:学生课后自主练习、课堂投屏演示、社团活动。
注意:进度存于浏览器 localStorage,换浏览器或清缓存会丢失。
形态三:自动化测试(改动后必跑)
cd <技能目录>
node scripts/smoke_test.js # 24 项:数据完整性 / 游戏机制 / UI 健壮性 / 静态资源
node scripts/test_exit_flow.js # 8 项:返回地图完整交互流程(沙箱环境)
两套测试都用 Node 模拟 DOM,无需浏览器即可验证改动没有引入回归。
改了 scripts/quest.py(题目生成)或 assets/workbench/assets/app.js(界面)后,
必须重建数据并重跑:
python scripts/build_workbench.py
node scripts/smoke_test.js && node scripts/test_exit_flow.js
形态二:命令行工具(教师备课与出题)
cd <技能目录>
# 查看全部关卡结构
python scripts/quest.py list
# 查询知识点
python scripts/quest.py word apple # 单词:音标/拼读拆解/例句/记忆点
python scripts/quest.py pattern p007 # 句型:公式/例句/易错/口诀
python scripts/quest.py grammar t01 # 时态:定义/公式/信号词/规则
python scripts/quest.py phonics --group vowels # 音标表(vowels/consonants/blends/silent)
# 生成练习材料
python scripts/quest.py drill p007 # 生成可打印的句型练习卷
python scripts/quest.py build L1-1 # 生成某关卡题目 JSON
python scripts/quest.py stats # 题库统计与题型分布
四大模块与关卡映射
| 模块 | 世界 | 关卡 | 覆盖内容 |
|---|---|---|---|
| 音标记单词 | 🔊 语音奇境 | L1-1 元音小镇<br>L1-2 辅音堡垒<br>L1-3 字母组合密道 | 20 元音 + 28 辅音音标、53 组字母组合、6 类不发音字母、Magic e 拼读 |
| 单词练习与解释 | 📖 单词王国 | L2-1 听说回声谷<br>L2-2 拼写方块镇<br>L2-3 词义万花筒 | 187 个 PEP 核心词:听音辨词、音标配词、拼写、词义、词性、例句填空 |
| 句型练习与解析 | 🏯 句型城堡 | L3-1 砖石工坊<br>L3-2 变形升降机<br>L3-3 实战应用场 | 25 个核心句型:公式拆解、陈述↔否定↔疑问变形、语境应用、找错改错 |
| 时态与语法 | 🌲 语法森林<br>⏳ 时态峡谷 | L4-1~L4-3<br>L5-1~L5-3 | 12 个语法点(名词复数/代词/冠词/介词/比较级等)+ 5 大时态 |
| 综合挑战 | 👑 综合试炼 | L6-1~L6-3 | 全部题型混合,由易到难三级 |
题型清单(12 类)
| 题型 | 说明 |
|---|---|
phonics-vowel-id / phonics-consonant-id |
给例词选音标,目标字母黄底划线高亮 |
phonics-vowel-word / phonics-consonant-word |
听音选音标(用另一组例词,与上一题型错开) |
phonics-clear-voiced |
清浊对应音辨析(10 组标准配对,标出清音字母) |
phonics-blend |
字母组合读音双向(字母→音标 / 音标→字母) |
phonics-silent |
不发音字母(kn/wr/mb/mn/gh/gn) |
phonics-magic-e |
Magic e 结构,给单词问中文,标出 magic e 片段 |
word-listen |
听音辨词(浏览器 TTS 朗读) |
word-ipa-match / word-meaning / word-pos |
音标配词、词义互译、词性判断 |
word-spell / word-spell-hard |
拼写辨析(基础)/ 首字母提示拼写(进阶长词) |
word-example |
例句填空 |
pattern-formula / pattern-order / pattern-transform / pattern-apply / pattern-error |
句型公式、连词成句、句型变形、语境应用、找错改错 |
grammar-* |
名词单复数、人称与物主代词、冠词、介词、比较级 |
tense-* |
5 大时态的构成、信号词、变形与易错 |
mixed-* |
词汇/语法/全真综合 |
数据结构
唯一权威数据源在 references/,工作台数据由脚本生成,不要手工编辑 assets/workbench/assets/*.js。
| 文件 | 内容 |
|---|---|
references/phonics.json |
48 音标(20 元音 + 28 辅音,含发音要领)、53 组字母组合、6 类不发音字母、6 类音节模式 |
references/words.json |
187 个核心词:音标、词性、中文、拼读拆解、音节、例句、记忆点、年级单元归属 |
references/patterns.json |
25 个核心句型:公式、要素、变形、疑问否定、易错辨析、口诀、练习 |
references/grammar.json |
5 大时态 + 12 个语法点:定义、公式、信号词、规则表、例句、易错 |
references/levels.json |
6 世界 18 关的关卡定义、题型配比、奖励、10 枚徽章条件 |
改动数据后必须重建:
python scripts/build_workbench.py
扩充题库
新增单词:往 references/words.json 的 words 数组追加,字段见 references/authoring.md。
新增句型:往 references/patterns.json 追加——句型的 examples 会自动生成应用题,
errors 会自动生成找错题,drills 会自动生成练习卷。
新增语法点:references/grammar.json 的 grammar 数组,追加后在 references/levels.json
的 questionPool 里挂上题型。
新增题型:写生成器函数(签名 gen_xxx(ws, phs, n) 返回题目数组),
在 scripts/quest.py 的 GENERATORS 表注册,再加进关卡的 questionPool。
教学使用建议
- 课前:用
quest.py drill <句型id>生成练习卷打印,课上讲评时对照quest.py pattern的「易错辨析」 - 课中:投屏工作台做「听音辨词」环节,学生举手抢答后再看解析
- 课后:布置「本周目标关卡」,达成 2 星算达标
- 分层:基础层做 L1~L3,能力层加做 L4~L5,学有余力做 L6
- 复习:用「词库速查」按单元筛选词汇,配合错题本定位高频错题
使用边界
- 面向小学 3-6 年级,不超纲;未涉及初中语法(定语从句等)
- 音标采用英式 RP 标注,与美国教材口径可能有差异
- 教材版本以人教PEP为主线;各地区教材有差异,以学校发放的教材为准
- 题目基于公开教材词汇与通用语法规则整理,重要引用建议核对原文
- 工作台为教学参考工具,不替代教师判断