一款基于浏览器的翻牌记忆力训练小游戏,专注于结合最新记忆训练研究成果与易于上手的交互设计。从经典配对玩法出发,逐步引入限时挑战、每日挑战、连击评分、统计分析、自适应调节、间隔复现、回忆测验,以及 N-back 等多模式训练,适合自我练习与教学演示。
- 经典翻牌基础:支持多难度(4×4 / 4×5 / 6×6),记录最佳成绩与排行榜。
- 限时模式(Countdown):为每个难度配置时间限制,时间到自动判负并提供重试提示。
- 每日挑战(Daily Challenge):按日期+难度+卡面生成固定种子,保证每日统一挑战。
- 连击评分与星级反馈:5 秒内连续配对提升连击等级,胜利星级随时间/步数/提示/连击综合评估。
- 统计面板:自动记录总局数、胜率、平均用时与步数、提示使用、平均最高连击等数据。
- 自适应辅助:通过玩家评分动态调节本局预览秒数与提示数量,实现循序渐进的难度调整。
- 间隔复现(Spaced Reinforcement):对易错卡面施加权重,在后续局中优先出现,支持导出/导入持久保存。
- 回忆测验(Delayed Recall):通关后立即进行 6 真 + 3 伪的再认测验,统计精确率与召回率。
- Emoji N-back 模式:单按钮(J 键)判定,与 N 步前是否相同,统计准确率与反应时,强化工作记忆。
- 多语言支持:中文 / English / 自动(遵循浏览器语言)。
- 新手引导与快捷键提示:首次访问自动弹窗,随时可从工具栏打开,汇总玩法与操作快捷键。
- PWA 友好:内置 Service Worker,缓存 Tailwind CDN,离线访问样式不丢失。
项目为纯静态前端,无需构建或后端依赖。
# 1. 克隆仓库
git clone https://github.com/<your-account>/remember.git
cd remember
# 2. 启动本地静态服务器(任选其一)
# 例如使用 npm serve(需 Node.js 环境)
npm install --global serve
serve .
# 或者直接在浏览器中打开 index.html访问浏览器中的 http://localhost:3000(取决于服务器配置)即可体验。
提示:若直接双击
index.html打开,请允许浏览器加载本地存储功能即可正常运行。
- 语言:原生 HTML / JavaScript
- 样式:Tailwind CSS(通过 CDN 注入)
- 存储:
localStorage用于设置、统计、成就、间隔复现数据等 - 构建:无构建流程,专注纯前端
| 模块 | 说明 |
|---|---|
index.html |
主页面,包含各类模态窗口、工具栏与交互控件 |
app.js |
游戏逻辑、自适应系统、统计管理、N-back 模式等核心功能 |
sw.js |
Service Worker,缓存静态资源与 Tailwind CDN |
- 经典配对:难度切换、提示次数限制、翻牌动画、排行榜。
- 限时玩法:可在设置中开启并自定义每个难度的倒计时秒数。
- 每日挑战:使用固定种子生成牌组,记录每日完成状态。
- 回忆测验:通关后弹窗,可跳过或提交;统计加入精确率/召回率。
- 自适应辅助:按照玩家表现调整预览时间与提示数量。
- 间隔复现:跨局记录易错卡面权重(未来计划升级 SM-2 / Leitner)。
- Emoji N-back:可配置 N 值、节奏、长度,支持键盘
J响应。
在设置菜单中可导出 JSON 备份,内容包含:
- 全部设置
- 各难度最佳成绩、排行榜
- 成就数据
- 统计信息(含连击、回忆测验、N-back)
- 自适应评分与间隔复现权重
导入时请谨慎操作,确保备份来源可信。
- 间隔复现 SM-2 升级:将当前权重机制升级为 SM-2 / Leitner 算法,支持复习间隔与掌握程度评分。
- 双任务干扰模式:在配对过程中加入颜色/数量等干扰任务,测量抗干扰能力。
- 交错训练:混合多种卡面集合,促进迁移学习。
- N-back 扩展:加入位置 N-back、双模态(视觉+听觉)与自适应 N 调节。
- 新手引导与快捷键提示:帮助用户快速理解玩法与快捷操作。
- 多语言扩展:继续补充文案与国际化能力。
欢迎通过 Issue 或 PR 贡献更多训练模式或研究性玩法!
- Fork & Clone 本仓库。
- 创建特性分支:
git checkout -b feature/your-feature。 - 提交改动:
git commit -m "feat: add your feature"。 - 推送并发起 Pull Request。
请确保遵循以下约定:
- 保持代码风格一致,避免过度封装。
- 新增功能最好附带基本测试或使用说明。
- 更新 README/文档,说明新功能的使用方法。
- 项目使用 Jest 编写核心逻辑的单元测试。
- 本地运行:
npm install npm test - GitHub Actions 会在 Node.js 18 与 20 上并行运行测试,并验证部署包可被正确产出(
npm run prepare:deploy)。 - 推送到
main将自动触发 Pages 部署流程,生成的静态资源位于dist/目录。
- 运行
npm run prepare:deploy将核心静态资源复制到dist/,供静态托管或 CDN 发布。 - GitHub Pages 工作流会复用该目录进行自动发布,默认包含
index.html、app.js、sw.js与manifest.webmanifest。
本项目采用 MIT License 开源(如需其它授权方式,可在发布前调整)。
如有合作、反馈或研究交流需求,欢迎提出 Issue 或直接联系作者。祝训练愉快!