【Code with SOLO】用 SOLO 半小时开发一款科学认知训练游戏 —— 双 N-Back
摘要
我是一名大二学生,对认知科学和脑力训练很感兴趣。传统 N-Back 训练工具大多使用字母或数字作为刺激物,容易产生语言记忆干扰,导致训练效果不准确。我用 TRAE SOLO 在约 30 分钟内完成了一款 双 N-Back 认知训练游戏 的全流程开发,采用不规则抽象符号替代传统字母,并通过匹配规划算法保证数据有效性,让认知训练更科学。
背景
N-Back 是认知心理学中经典的工作记忆训练范式,被大量研究证实能有效提升流体智力。但现有的在线 N-Back 工具普遍存在几个问题:
使用字母/数字作为刺激,容易触发语言记忆的"后门",训练的其实是语言短期记忆而非真正的工作记忆
缺乏科学的匹配规划,可能出现一局中没有任何匹配事件的情况,导致数据无效
评分系统简单(只看正确率),忽略了误报等信号检测论中的重要指标
作为大二学生,我想做一个更科学、更好用的 N-Back 训练工具。
实践过程
第一步:需求拆解
我将任务拆解为几个核心模块:
游戏引擎(刺激序列生成、匹配判定、计分)
UI 界面(Canvas 绘制、玻璃拟态风格)
统计系统(校正准确率、四种事件统计)
设置与记录(多模式、历史存储)
第二步:用 SOLO 逐步实现
我向 SOLO 描述了双 N-Back 的规则和我的创新设计,SOLO 帮我:
搭建了完整的 DualNBackGame 类架构
实现了 Canvas 绘制引擎(网格 + 抽象符号渲染)
编写了匹配规划算法(planMatches + generateMatchIndices)
设计了校正准确率评分系统
实现了玻璃拟态 UI 和响应式布局
第三步:关键创新点的实现
创新 1 —— 抽象符号库,避免二次语言记忆
JavaScript
this.SYMBOL_LIBRARY = [‘◈’, ‘⬟’, ‘⬢’, ‘⯐’, ‘⛨’, ‘⍟’, ‘⌬’, ‘⬭’, ‘⟡’, ‘⬯’, ‘⧉’, ‘⬓’, ‘▰’, ‘◸’, ‘⏢’];
每局随机选取 6-8 个符号作为活跃刺激,这些符号无语义、不规则,有效避免了二次语言记忆干扰。同时提供"高级颜色"模式,使用难以用语言描述的中间色,进一步防止语言编码作弊。
创新 2 —— 匹配规划算法,保证数据有效性
通过 planMatches() 预先规划每局 6-15 次位置匹配和符号匹配,generateMatchIndices() 确保匹配间隔 ≥ N,保证每个符号和位置至少出现多次,彻底排除"零按键"无效数据的情况。
创新 3 —— 校正准确率评分
采用信号检测论标准公式:校正命中率 = (命中数/总匹配数) - (误报数/总非匹配数),同时统计命中、漏报、误报、正确拒绝四种事件,评分更科学。
踩过的坑
初版没有匹配规划,随机生成序列时偶尔会出现一局 0 次匹配的情况,让 SOLO 加了规划算法后解决
计时器和游戏循环的冲突问题,通过独立的 customTimer 模块解决
符号渲染在不同浏览器下字体支持不一致,引入了 Google Fonts 的 Noto Sans Symbols 2 字体库
成果展示
在线体验: 双N-Back游戏
开源下载:https://github.com/Q-1844/dual-n-back-game
游戏主界面
3×3 网格上会出现抽象符号,玩家需要判断当前位置和符号是否与 N 步之前相同,按 F 键匹配位置、G 键匹配符号。
游戏结束统计
采用校正准确率算法科学评分,展示位置/符号双通道正确率、平均反应时间、最高难度等完整数据,并附有成绩分级标准。
训练记录
自动保存每次训练记录到本地,方便追踪长期进步趋势。
功能一览
功能 说明
双 N-Back 训练 位置 + 符号/颜色双通道同时训练
抽象符号模式 15 个不规则 Unicode 符号,避免语言记忆干扰
高级颜色模式 难以用语言描述的中间色,进一步防止语言编码
4 种游戏模式 普通(1200ms) / 极速(700ms) / 过度(600ms) / 末日(300ms)
科学评分系统 校正准确率 + 命中/漏报/误报/正确拒绝四种事件统计
个性化设置 网格大小(3×3/4×4)、难度范围(N=1~10)、轮数(10~100)
可拖拽计时器 独立计时功能,位置随意拖动
历史记录 LocalStorage 自动保存最近 20 条训练记录
响应式设计 手机、平板、电脑均可使用
效果与总结
开发效率:从零到完整可用的 Web 游戏,只用了约 30 分钟,SOLO 完成了从架构设计到 UI 实现的全流程
技术栈极简:纯 HTML5 + CSS3 + JavaScript,零框架依赖,直接浏览器打开即用
科学性提升:抽象符号避免了语言记忆干扰,匹配规划保证了数据有效性,校正准确率提供了更科学的评分。
SOLO 在整个过程中扮演了"全栈开发伙伴"的角色——我负责提出创新思路和规则设计,SOLO 负责实现。这种协作模式让我能把精力集中在认知科学的设计思考上,而不是纠结于代码细节。对于一个非计算机专业的大二学生来说,solo大大降低了将科学想法变为现实的门槛,对实现一些个人的创意非常有帮助。


