当前位置: 首页 > news >正文

用 AI Agent 做一个前端小游戏:从提示词到可运行 Demo

最近 AI 编程很火,但只说“AI Agent 很强”其实没什么意思。
这篇文章我们换个玩法:直接用 AI Agent 的思路,做一个能运行的前端小游戏
不讲太重的模型原理,重点就三个字:能跑通。

文章亮点

  • 有完整 HTML/CSS/JS 代码,复制即可运行
  • 有提示词模板,适合直接改成自己的 Demo
  • 有 AI Agent 工作流,帮你理解它和普通 ChatGPT 的区别
  • 适合前端初学者、CSDN 技术号重新发文、小游戏教程选题

先看最终效果

我们要做的是一个30 秒反应力挑战小游戏

玩法很简单:

  • 页面里随机出现一个黄色圆点
  • 点中一次加 1 分
  • 每局 30 秒
  • 时间结束显示最终分数
  • 可以重新开始

这个 Demo 不复杂,但刚好覆盖了前端小游戏最常见的几个点:DOM 操作、状态管理、倒计时、随机位置、移动端适配。

一、为什么前端开发者要关注 AI Agent

以前我们用 ChatGPT 写代码,常见方式是:

帮我写一个按钮组件。 帮我解释这段 JS。 帮我优化一下 CSS。

这类用法当然有帮助,但它更像“问一句,答一句”。

AI Agent 更像一个能持续推进任务的开发助手。你给它一个目标,它会尝试拆步骤、写代码、检查问题、继续迭代。

简单说:

对比项普通 ChatGPTAI Agent
工作方式一问一答围绕目标连续推进
适合任务解释代码、生成片段做 Demo、修 bug、整理项目
输出结果偏答案偏可交付成果
前端场景写一个函数做一个能玩的小游戏

如果再结合 MCP 这类协议,AI 工具还能接入更多上下文,比如项目文件、文档、浏览器、数据库等。对前端来说,这意味着以后很多“从想法到 Demo”的过程会明显变快。

二、给 AI Agent 的提示词怎么写

很多人觉得 AI 写代码不好用,问题往往不是 AI 不行,而是需求太模糊。

不推荐这样写:

帮我写一个小游戏。

更推荐这样写:

请用 HTML、CSS、JavaScript 写一个单文件前端小游戏。 游戏名:反应力挑战 功能要求: 1. 页面中随机出现一个黄色圆点 2. 玩家点击圆点得分 3. 游戏总时长 30 秒 4. 页面显示当前分数和剩余时间 5. 时间结束后显示最终分数 6. 支持重新开始 7. 适配手机端 8. 所有代码写在一个 index.html 中,方便直接复制运行

这个提示词的关键是:技术栈、交付形式、规则、状态、体验要求都说清楚了

AI Agent 最怕“你也不知道自己要什么”。需求越清楚,生成结果越接近可用 Demo。

三、完整代码:复制就能跑

新建一个index.html文件,把下面代码复制进去,用浏览器打开即可。

<!DOCTYPEhtml><htmllang="zh-CN"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width, initial-scale=1.0"/><title>反应力挑战</title><style>*{box-sizing:border-box;}body{margin:0;min-height:100vh;font-family:Arial,"Microsoft YaHei",sans-serif;background:#101820;color:#fff;display:flex;align-items:center;justify-content:center;}.game{width:min(92vw,520px);padding:20px;}.top{display:flex;justify-content:space-between;gap:12px;margin-bottom:14px;font-size:18px;font-weight:700;}.board{position:relative;width:100%;aspect-ratio:1 / 1;background:#1f2a33;border:2px solid #3f5668;border-radius:12px;overflow:hidden;touch-action:manipulation;}.target{position:absolute;width:58px;height:58px;border:none;border-radius:50%;background:#ffcc33;box-shadow:0 0 18pxrgba(255,204,51,0.75);cursor:pointer;transform:translate(-50%,-50%);transition:left 0.12s ease,top 0.12s ease,transform 0.08s ease;}.target:active{transform:translate(-50%,-50%)scale(0.88);}.panel{margin-top:14px;display:flex;justify-content:space-between;align-items:center;gap:12px;}.message{min-height:24px;color:#d8e3ea;}.start{border:0;border-radius:8px;padding:10px 16px;background:#00a884;color:white;font-size:16px;font-weight:700;cursor:pointer;}.start:hover{background:#00bd95;}@media(max-width:420px){.top{font-size:16px;}.target{width:50px;height:50px;}}</style></head><body><mainclass="game"><divclass="top"><div>分数:<spanid="score">0</span></div><div>剩余:<spanid="time">30</span>s</div></div><sectionclass="board"id="board"aria-label="游戏区域"><buttonclass="target"id="target"aria-label="点击得分"></button></section><divclass="panel"><divclass="message"id="message">点击开始,测试你的反应速度。</div><buttonclass="start"id="start">开始游戏</button></div></main><script>constboard=document.querySelector("#board");consttarget=document.querySelector("#target");constscoreEl=document.querySelector("#score");consttimeEl=document.querySelector("#time");constmessageEl=document.querySelector("#message");conststartBtn=document.querySelector("#start");letscore=0;lettimeLeft=30;lettimer=null;letplaying=false;functionrandom(min,max){returnMath.floor(Math.random()*(max-min+1))+min;}functionmoveTarget(){constboardRect=board.getBoundingClientRect();consttargetSize=target.offsetWidth;constpadding=targetSize/2+8;constx=random(padding,boardRect.width-padding);consty=random(padding,boardRect.height-padding);target.style.left=`${x}px`;target.style.top=`${y}px`;}functionstartGame(){score=0;timeLeft=30;playing=true;scoreEl.textContent=score;timeEl.textContent=timeLeft;messageEl.textContent="快点击黄色圆点!";startBtn.textContent="重新开始";moveTarget();clearInterval(timer);timer=setInterval(()=>{timeLeft-=1;timeEl.textContent=timeLeft;if(timeLeft<=0){endGame();}},1000);}functionendGame(){playing=false;clearInterval(timer);messageEl.textContent=`游戏结束,你的最终分数是${score}分。`;}target.addEventListener("click",()=>{if(!playing)return;score+=1;scoreEl.textContent=score;moveTarget();});startBtn.addEventListener("click",startGame);window.addEventListener("resize",()=>{if(playing)moveTarget();});moveTarget();</script></body></html>

四、这段代码里最值得看的 3 个点

1. 游戏状态

letscore=0;lettimeLeft=30;lettimer=null;letplaying=false;

小游戏不一定需要复杂框架,但一定要有清晰的状态。
这里的scoretimeLeftplaying就是最核心的游戏状态。

2. 随机位置

constx=random(padding,boardRect.width-padding);consty=random(padding,boardRect.height-padding);

这里加了padding,是为了避免圆点贴边导致不好点。
这个细节很小,但会明显影响游戏体验。

3. 重新开始

clearInterval(timer);timer=setInterval(()=>{timeLeft-=1;timeEl.textContent=timeLeft;},1000);

重新开始前先清掉旧定时器,否则多点几次开始按钮,倒计时可能会加速。
这类小 bug,正是让 AI Agent 反复检查时很容易发现的点。

五、让文章更有收藏价值:继续让 AI 优化

第一版能跑之后,可以继续给 AI Agent 下第二轮任务:

请基于当前小游戏继续优化: 1. 增加最高分记录,使用 localStorage 保存 2. 分数越高,圆点越小 3. 增加连击提示 4. 点击空白区域扣 1 分 5. 游戏结束后显示评级,例如 S、A、B、C 6. 增加简单动画,让圆点出现时更有反馈

这样文章也能继续拆成系列:

  • 第 1 篇:AI Agent 做小游戏基础版
  • 第 2 篇:加最高分和难度系统
  • 第 3 篇:把原生 JS 版本改成 Vue/React
  • 第 4 篇:用 AI 优化 UI 和动画

对长期没更新的账号来说,系列文章比单篇文章更容易形成连续曝光。

六、前端开发者怎么真正用好 AI Agent

我的建议是:不要只让 AI 写一小段代码,而是把它当成“Demo 搭建助手”。

适合交给 AI Agent 的任务:

  • 快速做一个小游戏原型
  • 写一个后台页面初版
  • 把普通 JS 代码拆成模块
  • 根据报错信息定位 bug
  • 把一个 Demo 改成 Vue/React 版本
  • 给技术文章补充代码解释和标题结构

但最后一定要自己检查三件事:

  • 代码能不能跑
  • 交互顺不顺
  • 逻辑有没有边界 bug

AI 负责提速,人负责把关。这个组合目前最实用。

七、总结

AI Agent 不是魔法按钮,但它确实能把前端开发里“从 0 到 1”的速度拉快很多。

这篇文章我们用一个反应力小游戏跑了一遍完整流程:

写清需求 -> 生成代码 -> 浏览器运行 -> 检查问题 -> 继续优化

如果你是前端初学者,可以从这种小游戏开始练习;如果你已经有项目经验,也可以把 AI Agent 当作项目原型工具。

技术一直在变,但核心能力没变:看懂需求、判断代码、优化体验。AI 会让写代码更快,而真正拉开差距的,还是你对细节的把控。

发布小建议

  • 封面图可以用本文第一张图
  • 标题可选:2026 前端新玩法:用 AI Agent 做一个能运行的小游戏
  • 标签建议:AI Agent前端JavaScript小游戏ChatGPT

参考资料

  • Model Context Protocol 官方文档
  • OpenAI Codex 官方介绍
  • GitHub Copilot Agent Mode 文档
http://www.jsqmd.com/news/1070195/

相关文章:

  • 3个简单步骤,用PyPDF实现专业级PDF文档自动化处理
  • 我决定,再也不在微信群里发服务器密码了
  • 本地AI虚拟主播实战指南:从零构建低延迟智能交互系统
  • 课时3:C 语言输入输出函数:printf 与 scanf 详解
  • 别再熬夜写论文了!6款AI论文网站,一键生成逻辑连贯初稿!
  • windows装gitlab服务器
  • 微信聊天记录本地化备份:完全掌控你的数据隐私与存储空间
  • FMEA失效分析实操指南 助力工业产品质量管控升级
  • 【IEEE出版、EI检索】2026年无人系统与智能技术国际学术会议(USIT 2026)
  • 双检测压力不用愁!okbiye 分层降重降 AIGC,一键扫清论文定稿两道关卡
  • web作业七
  • 如何用AI驱动市场调研工具last30days-skill实现数据驱动的商业决策
  • 如何在PC上轻松运行3DS游戏:Citra模拟器全面实用指南
  • AI 浏览器 Tabbit 实测:Agent 模式如何操作网页,以及多模型接入方案
  • 每天运营Instagram,却始终0客户咨询?
  • 苹果电脑录屏怎么带声音?3 种实用方法
  • Spring Boot原生集成Nacos的3种方式
  • 中国古代的科技之谜——图灵竟是老子转世,而C++里藏着“道”的源代码
  • RTranslator离线翻译模型快速部署终极指南:告别漫长下载,5分钟完成安装
  • 大模型应用开发 · 极速学习手册
  • 如何免费获取国家教育平台电子课本:终极离线使用指南
  • 设计师AI创意工具选型指南(2024年Q2权威评测版):基于87家设计团队、1268小时工作流埋点分析
  • Serenity-skill解决方案:构建AI驱动的供应链瓶颈投资研究系统
  • 深度解析mpv命令行播放器:如何在Intel UHD显卡上实现4K/8K超高清流畅播放
  • 终极指南:如何免费让2007-2015年老款Mac焕发新生
  • GLM-5.2 深度解读:智谱新一代旗舰模型,如何重新定义开源大模型的性能边界?
  • 深度解析游戏逆向工程:AES加密破解与模组开发实战指南
  • 火山引擎 FORCE 大会开幕,豆包大模型 1.8 发布,Seedance 月入 10 亿
  • 3分钟学会:如何一键下载国家中小学智慧教育平台电子课本
  • Pingora 深度解析:Cloudflare 下一代 Rust 高性能代理