GitHub周趋势2026W25 | Headroom 压缩 95% Token、NVIDIA 开源 AI Agent 安全扫描器、…
2026-07-28
2026-08-03 0
分类: ai-development
标签: CodeArts, AI编程, TypingTest, 网页应用, 键盘
难度: 初级
读者: 前端开发者、编程学习者、技术写作者
我在码道 TUI 里输入了一段需求:「做一个打字测试(Typing Test)网页应用,单个 HTML 文件即可运行……」约 4 分 25 秒后,一个 515 行、约 16 KB 的完整打字测试应用就自动生成了:随机英文单词从顶部带着霓虹光晕彩色下落,输入首字母自动锁定最紧急的目标单词,正确字母绿色高亮、错误字母红色高亮并计数;60 秒倒计时结束后弹出成绩单,统计 WPM(每分钟正确单词数)、正确率、错误数与击键数;最佳 WPM 保存在 localStorage,刷新页面也不丢。双击 HTML 就能开局。
复制下面的命令到终端,3 步完成安装:
# 1. 一键安装sh -c "$(curl -L https://cnnorth4-cloudide-marketplace.obs.cn-north-4.myhuaweicloud.com/codearts/cli_tui/install_script/install.sh)"# 2. 配置环境变量export PATH=~/.codeartsdoer/installers:$PATHexport CODEARTS_CLI_AK=你的AKexport CODEARTS_CLI_SK=你的SK# 3. 启动 TUIcodearts
AK/SK 获取:https://codearts.huaweicloud.com/portal/settings/cli-auth
安装完成后,在命令行或 PowerShell 中输入 codearts 回车,即可打开码道 TUI。把开发需求贴进输入框,码道会自动分析并生成完整代码。
这次开发中,码道展示了以下能力:
我想要一个打字测试(Typing Test)网页应用,具体要求:
我在码道 TUI 中贴入需求后,码道先拆解需求,然后直接开始写代码:

生成过程中,码道边写代码边核对实现要点,进度条与生成日志实时可见:

约 4 分 25 秒后,码道汇报完成,输出功能清单,并提示文件位置:

双击生成的 typing-test.html 在浏览器中直接运行,Typing Test 界面、玩法说明与 Start Game 按钮都正常:

码道生成的代码是一个自包含的单页应用,核心逻辑非常清晰:
单词生成与渲染:从内置词库随机取词,每个字母包成一个 便于逐字高亮,落点随机、颜色随机:
function spawnWord() {const text = pick(WORDS);const el = document.createElement('div');el.className = 'falling-word';const color = pick(COLORS);el.style.color = color;for (let i = 0; i < text.length; i++) {const span = document.createElement('span');span.className = 'char';span.textContent = text[i];el.appendChild(span);}...}
目标锁定:输入首字母时遍历下落中的单词,锁定 y 坐标最大(最紧急)的匹配单词,符合直觉:
if (!target) {let candidate = null;for (const w of words) {if (w.text[0] === ch && w.y > -20) {if (!candidate || w.y > candidate.y) candidate = w;}}if (candidate) { setTarget(candidate); inputBuffer = ch; ... }}
实时判键与高亮:每敲一个字母就与目标单词对应位置比较,正确绿色、错误红色,错误计入 errors:
inputBuffer += ch;target.typed = inputBuffer.length;if (target.text[inputBuffer.length - 1] !== ch) errors++;renderWord(target);updateInputDisplay();updateStats();checkComplete(target);
游戏循环与难度曲线:用 requestAnimationFrame 驱动单词下落,生成间隔随剩余时间缩短(速度加快),底部出界自动清除:
const spawnInterval = Math.max(0.55, 1.4 - (60 - timeLeft) / 80);if (lastSpawn > spawnInterval && words.length < 9) {spawnWord();lastSpawn = 0;}
统计与持久化:结束弹窗展示 WPM、正确率、错误数与击键数,最佳 WPM 写入 localStorage,破纪录提示 New Best:
const wpm = elapsed > 0 ? Math.round((correctWords / elapsed) * 60) : 0;...let bestWpm = parseInt(localStorage.getItem('typingBestWpm') || '0', 10);
从这些代码可以看出,码道不只把功能拼出来,目标锁定、难度曲线、成绩统计这些影响体验的细节也都处理得比较到位。
双击 typing-test.html 即可开始游戏:点击 Start Game,彩色单词从顶部流式下落,输入首字母自动锁定最下方的目标单词,正确字母绿色高亮、错误字母红色高亮并累计错误;顶部实时显示剩余时间、WPM、正确率、错误数与已完成单词数,ESC 可暂停/继续、Backspace 可退格修正。60 秒倒计时结束后弹出成绩单,若打破历史最佳会提示 New Best 并写入 localStorage,下次打开页面仍能看到最佳 WPM。深色渐变背景持续流动,配合单词霓虹光晕,视觉沉浸感不错。
用码道开发打字测试这类网页应用,最大的感受是"需求即产品":把玩法要点说清楚,码道就能给出包含完整交互、动画和视觉风格的成品。对想快速验证创意、或者刚学前端想看看"一个完整应用是怎么写的"的同学,让码道先生成一份,再对照源码逐行读,是很好的学习路径。下一轮,我打算让码道继续挑战不同玩法的小游戏,继续记录真实的开发过程。