Skip to content

从想法到作品 / 章节 01

第一章|先让一个想法动起来 ​

读完这一章,你可以

做出并试玩基础贪吃蛇,留下第一份明确的修改想法。

大家好。我想用一个大家熟悉的小游戏,带大家开始这次 AI 编程的学习:做一条能移动、吃东西、计分的贪吃蛇,再把它逐步改成自己喜欢的样子。

选择它,是因为我们很容易判断结果。蛇有没有移动,撞墙后有没有结束,重新开始是否重置了分数,玩一会儿就能发现。这种能够及时获得反馈的项目,很适合第一次体验“提出想法—得到结果—继续修改”的过程。

这个起点来自 Datawhale 的 Easy-Vibe 教程《AI 时代的编程初体验》。原教程从基础贪吃蛇继续扩展文字、诗歌和图像玩法。我们先做普通版本,再顺着自己的问题学习 Agent 的使用方法。

从一句“帮我做一个游戏”开始 ​

你可以先在脑中想象它的样子:一个方形区域,一条蛇,一颗食物,几个按钮。现在试着告诉另一个人,你希望它怎样工作。你会发现,“贪吃蛇”三个字虽然很熟悉,很多细节其实没有说清:游戏打开后立刻开始,还是等玩家点击?有没有暂停?撞墙结束还是穿过边界?

第一轮先确定最基本的玩法。我们约定:玩家点击开始后,用方向键控制移动;吃到食物会变长并加分;撞到边界或身体则结束;结束后可以重新开始。暂停、难度、主题和排行榜先留到后面。

这就是第一份需求的雏形。它已经可以用来讨论和生成作品。后面如果想增加功能,我们会从这份约定继续修改。

规则 → 游戏

点击开始
撞墙结束
重开清零

找到一个能操作项目的 Agent ​

普通聊天窗口可以给出代码,AI 编程 Agent 还可以借助工具读文件、修改文件、执行命令,有些还能操作浏览器。你可以把 Agent 看成一个能够一边行动、一边读取行动结果,再决定下一步的协作系统。

我们接下来用 ZCode 说明常见操作,已经有 DSH 等环境的同学也可以沿用。先完成三个准备动作:打开应用,接通模型,选择一个项目文件夹。具体安装入口与步骤放在工具准备。

在电脑“文档”中新建 snake-lab,把这次项目集中放在这里。工具选择工作目录时指向它。这个目录会成为 Agent 读取和修改文件的主要位置,你之后找作品、备份和排错也都从这里开始。

第一次接通模型时,可以先发一个普通问题:“请用两句话解释,一个 HTML 文件怎样在浏览器里打开。”收到回答后,再开始创建项目。这样,模型连接与项目实现两个环节就分开了;后面出现问题时,也更容易判断停在哪一步。

配置页里的几个词,先理解到够用 ​

有的工具通过账号登录连接模型,有的允许填写服务地址、密钥和模型名称。它们大致回答三个问题:去哪里请求、用什么凭据访问、希望使用哪个模型。

这里会遇到 API。API 可以先理解为程序使用另一项能力的接口:工具按规定发送信息,模型服务按规定返回结果。你在网页聊天时看见的是对话框,在软件配置里看到的则可能是背后的连接信息。

以 DeepSeek 的官方入门文档为例,base_url 是服务地址,api_key 是访问凭据,model 指定模型。它们应该来自同一个服务的对应配置。官方首次调用说明给出了具体示例。现在先知道这些字段的作用;API 补充教程会带大家在 DSH 里完成配置,再认识这些名词。

如果通过工具里的账号入口连接,就按它的授权步骤完成。连接后看一下可用模型与额度,确认工具能正常回答。密钥自己保管;以后发项目给同学时,把代码与凭据分开。

给出第一份任务 ​

下面这段可以作为首次对话的起点。先读一遍,确认它表达的是你想做的东西:

text
我想做一个可以在电脑浏览器里玩的贪吃蛇。

第一版规则:
- 点击开始后运行,用方向键控制。
- 吃到食物后蛇变长,分数增加。
- 撞墙或碰到自己的身体后结束。
- 可以重新开始,恢复初始状态。

请先复述你理解的玩法,说明准备创建哪些文件、怎样打开。
先采用简单的单文件 HTML 方案,把需要的样式和逻辑放进去,
方便我找到文件并运行。暂时先不加账号、排行榜或在线接口。
确认需求后,在当前 snake-lab 目录里实现。

这里有几个值得留意的地方。我们给了行为规则,也说清了结果怎样打开;选择单文件,是为了让第一次运行少一些环节;要求先复述,是让双方在修改前有机会发现理解差异。

如果它提出其他方案,你可以问:“这个方案解决了当前哪一个问题?与直接打开 HTML 相比,多了哪些准备步骤?”先听解释,再决定是否采用。现在最重要的是得到一个能试玩的小版本。

看 Agent 做了什么 ​

发送任务后,注意对话中出现的行动:读取了哪个目录,创建了什么文件,是否执行了命令,遇到了什么返回结果。不同工具的呈现方式不同,但都可以沿着“读取—行动—结果”去理解。

例如,它先列出工作目录,发现里面没有文件;接着创建 index.html;然后告诉你打开方式。此时,你可以在文件管理器里找到这个文件。实际文件出现后,才轮到浏览器运行。

如果工具提议执行命令,先看目的和工作目录。命令可能是在启动服务、安装依赖,也可能只是在检查文件。可以直接请它解释:“这一步会做什么,成功后会看到什么?”读懂一条具体操作,比一次认识很多命令更容易。

Agent 的基本循环也就在这里:拿到信息,选择行动,获得结果,再决定继续还是调整。它运行一个检查之后继续修代码,通常也是因为结果提供了新的线索。

先试玩,再判断

打开
试玩
记录

打开并试玩第一版 ​

在资源管理器或 Finder 中找到 index.html,右键选择浏览器打开。页面出现后,先做一轮简单试玩:点击开始、转向、尝试吃到食物、撞墙、重新开始。

先分别观察这些行为,再给出评价:

你做的操作应该看到的结果
点击开始蛇开始按固定节奏移动
按方向键蛇改变移动方向
吃到食物长度和分数发生变化,出现新的食物
撞墙当前游戏结束
重新开始回到初始分数和初始局面,再开始一局

如果某项不符合约定,把现象记下来。例如:“重新开始后分数归零,但蛇长度仍是上一局的长度。”这已经是一条可以继续讨论的问题。

这一轮先把普通流程试一遍。更细的检查会随着新功能逐渐增加,下一章先处理一个更常见的体验问题:游戏虽然能玩,但不是你想要的感觉。

从“它做出来了”走向“这是我的作品” ​

第一版出来之后,你很可能会产生新想法:移动太快,想增加暂停,按钮位置不顺手,想换成自己喜欢的主题。这就是接下来学习的起点。

我希望大家保留这份最初版本。复制整个项目文件夹,命名为 snake-lab-first;当前继续修改的目录仍是 snake-lab。之后比较两版,你会更容易看到自己的判断怎样改变作品。

也给自己留下三句话:这版已经能做什么,我最想改哪里,为什么想改。先用自然语言写,暂时说不出技术词也没关系。

先想一想 ​

假设你试玩后只写了“体验不好,优化一下”,Agent 可能往哪些方向修改?如果你实际觉得“速度太快,新手还没看清就撞墙”,又应该怎样描述?

想好以后,看看参考思路

参考思路:前一句可能引发配色、布局、动画和逻辑等各种改动;后一句已经指向新手难度。还可以补充希望怎样改变,例如增加一个慢速档,保持其他玩法不变。下一章就从这项修改继续。

停一下,检查自己的理解 ​

RECALL / 一分钟回忆

AI 说“已经完成”,接下来应该做什么?

本站点基于 MIT License 发布