五十音还没背熟,练习页倒是先做好了
想练五十音,我先去找了一圈工具。有的非要装 app,有的广告比假名还多,还有的得点完三层菜单才看得到题。我只想记几个字,不想先熟悉一套产品。
后来看到一个「打开就能练」的网页,这思路就很对。干脆在自己站上也放一个。AI 先撸,我负责不断挑毛病,一来二去就有了现在这版。
地址:bobchen.net/kana.html。打开就是题目,输罗马音,回车判定。不用登录,也没往里面塞广告。页面打开后不会先弹一屏教程。
功能没按教程网站的模板凑,都是我自己练的时候会用到的。
平假名、片假名和混合模式可以直接切。行也能自己勾,今天只想练さ行和た行,就别让其他字进来混。浊音、半浊音和拗音都有单独开关,易错题里则专门放 し/ち/つ、じ/ぢ、ず/づ 这些看久了就开始互相伪装的家伙。
想练词就切到「词」模式。N5 到 N1、日常词和短句现在一共有 337 条,看着假名输罗马音。这不是考试,就是给还没背熟的人慢慢磨。
手机上不想打字,假名模式还能改成四选一。真要打字时,键盘弹出来会把题目和输入框收紧到同一屏,不用边做题边上下找框。
答对有 8-bit 的「叮」,答错有「咚」。音效是代码合成的,没有音频文件。
输入不较真流派。し 答 shi 或 si 都算对,ち 答 chi 或 ti 也行,つ 是 tsu 或 tu。练的是记没记住,不是考输入法。
错的字会记仇。答错的假名和单词会提高出题权重,2 到 4 题之内还会强制回来一次。答对一次,它才少记一点仇。计分、错题和勾选过的范围都存在浏览器里,关掉再开也跑不了。
页面还是全站这套红白机的样子。没引框架,也没数据库,几个静态文件就能跑。
真想自己跑一份
最小结构就是 kana.html + kana-practice.js + style.css。本地临时看一眼,python3 -m http.server 8000 就够。想让它常驻,又不想在宿主机上装一堆 Web Server,可以丢给 Nginx 容器。compose.yml 放在站点根目录:
services:
kana:
image: nginx:alpine
container_name: kana-static
ports:
- "8080:80"
volumes:
- ./:/usr/share/nginx/html:ro
restart: unless-stopped启动后直接验收 kana.html:
docker compose config
docker compose up -d
curl -I http://127.0.0.1:8080/kana.html错题「记仇」也没有神秘模型。每错一次就把抽题权重往上加,最高 9;然后再往复习队列里塞一份,让它在 2 到 4 题后强制回来:
const weight = 1 + Math.min(misses * 2, 8);
const due = questionCount + 2 + Math.floor(Math.random() * 3);
reviewQueue.push({ item: current.item, due });计分、错题和筛选项用 localStorage 存在浏览器里。这个页面没有账号系统,所以数据也不会自动跑到另一台设备上。清浏览器数据之前,别把这点记忆当成云备份。
页面现在每天都能打开。至于我每天会不会打开,暂时别问。
COMMENTS 留言
READING MEMORY CARD…