作者:水煮菜还挺好吃10011118452
可恶,如果我刚上大学那会有iFlow这种工具帮我做大作业,不敢想我在期末周得是多么开朗的少年
应用开发入门:如何让iFlow CLI理解你想做什么?
场景:假如我想做一个贪吃蛇的游戏,我该如何去对cli发号施令,让它很好地理解我的意思呢?
原则:细节至上,循序渐进
如果你只告诉cli说我想做一个这样的游戏,那它就会按照自己的想法去做,做出来的产品容易出bug,并且各项细节也都难以做好。
解决办法:提示词两步走方法!
我们目前的任务是做一个贪吃蛇游戏,那么我们就需要详细的提示词来实现我们心目中的程序。
第一步:构建提示词框架
我们可以让ai帮我们生成目前的提示词框架,比如:
我现在想做一个贪吃蛇游戏,请你帮我想想我应该如何构建我的提示词,以及这个提示词应该包含哪些内容
然后我们可以得到ai的回答:
角色设定:
你是一个资深游戏开发工程师,擅长使用 [在这里写:例如 JavaScript + HTML5 Canvas / Python + Pygame / Unity C#] 开发 2D 小游戏。开发目标:
帮我从零开始实现一个经典的“贪吃蛇”游戏,运行在 [浏览器 / Windows 桌面 / 手机 Android 等] 上.要求:
- 玩家可以通过 [键盘方向键 / WASD / 触屏手势] 控制蛇移动。
- 蛇吃到食物后会变长,同时得分增加。
- 撞到墙壁或撞到自己身体时游戏结束。
- 提供简单的开始界面和游戏结束界面,显示分数。
我的背景与现状:
我对编程的熟练程度是:[比如:刚入门 JS,只懂一点 HTML/CSS / 对 Python 语法还算熟悉]。
目前还没有任何代码(或:已经有一段代码,我会发给你)。
技术与实现细节要求:
使用语言和技术栈:必须使用 [具体语言/库]。
结构要求:
请尽量使用模块化/函数拆分/面向对象的方式组织代码,避免过多的全局变量。
兼容性要求:
[例如:需要在主流桌面浏览器中运行 / 仅需在本地 Python 环境运行即可]。
功能细节:
- 地图大小固定为 [例如 600x400 像素 / 20x20 格子]。
- 蛇的移动以固定步长前进,而不是连续移动。
- 初始速度为 [如:每 150ms 移动一格],每得 [10] 分速度略微提升一点。
- 每次只生成一个随机食物,不能出现在蛇身上。
- [可选] 加入暂停功能(按 P 暂停/继续)。
- [可选] 简单音效(吃到食物、死亡时播放不同声音)。
输出形式与步骤要求:
一、先帮我规划整体结构,列出:
- 游戏需要哪些主要模块/类/函数(例如:Game Loop、Snake、Food、Input、Renderer 等)。
- 每个模块大致负责什么。
二、再分步骤提供代码:
- 第一步先实现一个最简版本(蛇能移动、边界和死亡判定简单完成)。
- 后面再逐步增加食物、得分、速度变化等功能。
- 每次给代码时:附上关键注释,说明逻辑。说明这段代码应该放在哪个文件里,以及如何运行。如果有多种实现方式,请简单说明优缺点,并推荐一种适合我当前水平的方案。
- 交互方式:在每一步实现后,请告诉我如何测试,等我说“测试通过”后再进入下一步。如果你对我的需求有不清楚的地方,请先提出问题再继续给代码。
第二步:对现有的提示词进行优化
对我的提示词进行优化:
- 有三种食物随机出现,吃到之后会增长不同的体长。
- 在食物出现的同时,偶尔会刷新毒物,频率大概是每吃五个食物场地里会随机刷新一个毒物,经过一段时间后毒物会消失,场地里同一时间只能有一个毒物。
- 我希望可以提供一个功能,让用户自主选择蛇的颜色。
以下是我的原提示词:{context}
ai进行二次润色后的结果:
角色设定(不变)
你是一个资深游戏开发工程师,擅长使用 [在这里写:例如 JavaScript + HTML5 Canvas / Python + Pygame / Unity C#] 开发 2D 小游戏。开发目标:
帮我从零开始实现一个经典的“贪吃蛇”游戏,运行在 [浏览器 / Windows 桌面 / Android 手机 等] 上。要求:
- 玩家可以通过 [键盘方向键 / WASD / 触屏手势] 控制蛇移动。
- 蛇吃到食物后会变长,同时得分增加。
- 有三种不同类型的食物,会随机出现:
- 每种食物被吃到后,增加的体长不同(例如:+1、+2、+3 节)。
- 不同食物类型在外观上有明显差异(颜色或形状不同)。
- 在食物出现的同时,引入“毒物”机制:
- 大约每吃满 5 个食物,就在场地内随机生成 1 个毒物(概率或计数方式可以在实现阶段一起设计)。
- 毒物不能出现在蛇身上,也不能和食物重叠。
- 场地内任意时刻最多只存在 1 个毒物。
- 毒物存在一段有限时间后会自动消失(超时移除),再满足条件时可以重新生成。
- 蛇碰到毒物后会触发惩罚效果(请你根据整体难度,帮我设计一个合理惩罚方案,并说明理由,例如:扣血 / 直接死亡 / 扣分等)。
- 蛇撞到墙壁或撞到自己身体时游戏结束。
- 提供简单的开始界面和游戏结束界面,显示当前得分和历史最高分(若方便的话)。
- 提供一个功能,让用户可以自主选择蛇的颜色:
- 可以在开始界面或设置界面选择几种预设颜色(如:绿色、蓝色、红色)。
- 选择的颜色会应用在游戏中的蛇身显示上。
我的背景与现状:(按你实际情况填写)
我对编程的熟练程度是:[例如:刚入门 JS,只懂一点 HTML/CSS / 对 Python 语法还算熟悉]。
目前项目状态为:[还没有任何代码 / 已经有一段代码,我会发给你]。
技术与实现细节要求
使用语言和技术栈:
必须使用 [具体语言/库,例如:原生 JavaScript + HTML5 Canvas / Python + Pygame / Unity C#]。
代码结构要求:
尽量使用模块化/函数拆分/面向对象的方式组织代码,避免过多的全局变量。
将“蛇”“食物”“毒物”“游戏主循环”“输入处理”“渲染/绘制”等逻辑分开,便于后续扩展。
兼容性要求:
[例如:需要在主流桌面浏览器中运行 / 仅需在本地 Python 环境运行即可]。
功能细节
地图与坐标:
地图大小固定为 [例如 600x400 像素 / 20x20 格子]。
蛇的移动以固定步长前进(以网格为单位),而不是平滑连续移动。
速度与难度:
初始速度为:每 [如:150ms] 移动一格。
每得 [10] 分,速度略微提升一点(移动间隔减少一点,但不要快到不可玩)。
若你认为有必要,可以根据加入毒物与多种食物的机制,对难度进行微调,并解释原因。
食物系统(重点扩展):
每次至少生成 1 个随机食物,不能出现在蛇身上。
共有 3 种食物类型:
不同类型出现时要有明确区分(颜色/形状)。
每种类型提供不同的“增长长度”,例如:
食物 A:+1 节
食物 B:+2 节
食物 C:+3 节
你可以根据游戏平衡性,给出这三种食物的出现概率设计(例如:+1 最常见,+3 最稀有),并说明理由。
毒物系统(新增机制):
统计玩家已吃到的食物数量,每吃满大约 5 个食物时,在场地中随机刷新 1 个毒物。
可以采用:累积计数达到 5 就生成毒物并计数清零,或使用概率方式,但要说明具体实现方案。
毒物生成时:
不能和蛇身重叠。
不能和当前食物重叠。
场地同一时间最多存在 1 个毒物。
毒物有生存时间限制(例如:几秒后自动消失),然后在之后满足条件时再刷新的毒物。
蛇碰到毒物后的惩罚效果:
由你设计一个合理方案并实现,例如:
直接游戏结束,或者
扣除部分长度 / 扣分 / 减速或加速等负面效果。
请在实现前先给出设计说明,并简要说明选择这种惩罚方式的优缺点。
蛇的颜色选择功能(新增需求):
在开始界面或一个简单设置界面,让玩家可以选择蛇的颜色。
至少提供 3 种预设颜色(例如:绿色、蓝色、红色),也可以是更多。
玩家选择的颜色会作用于游戏中蛇所有身体块的显示。
如有可能,请说明如何在代码中方便地扩展更多颜色选项。
其他可选功能:
[可选] 加入暂停功能(按 P 暂停/继续)。
[可选] 简单音效(吃到不同食物、碰到毒物、死亡时播放不同声音)。
[可选] 显示当前吃掉的不同类型食物数量统计。
输出形式与步骤要求
先帮我规划整体结构,列出:
游戏需要哪些主要模块/类/函数(例如:Game Loop、Snake、FoodManager、PoisonManager、Input、Renderer、UI/菜单 等)。
每个模块大致负责什么,并简单说明各模块之间的关系(例如:Game 调用 Snake、FoodManager、PoisonManager 和 Renderer)。
再分步骤提供代码:
第一步:实现最简版本:
蛇能移动;
边界碰撞和自撞检测;
基本游戏循环。
第二步:加入单一食物与得分系统。
第三步:扩展为三种不同食物,并实现不同增长长度和出现概率。
第四步:加入毒物机制(生成、消失、碰撞惩罚)。
第五步:实现蛇颜色选择界面功能,并与游戏主逻辑整合。
若你认为有更合理的分步骤方式,可以调整,但请说明调整原因。
每次给代码时:
附上关键注释,说明主要逻辑。
说明这段代码应该放在哪个文件里(例如:
index.html/main.py/Game.cs等),以及在我的环境中如何运行。如果有多种实现方式:
请简单说明各自优缺点。
推荐一种适合我当前水平的方案,并解释理由。
交互方式
在每一步实现后,请告诉我具体如何测试(例如:打开哪个文件 / 运行哪个命令 / 按哪些键来操作),等我说“测试通过”后再进入下一步。
如果你对我的需求(尤其是三种食物的具体数值设计、毒物惩罚方式、蛇颜色选择界面样式)有不清楚的地方,请先提出问题,再继续给代码。
第三步:让iflow cli根据这个详细的计划来执行任务。
iflow cli会按照你的计划来一步一步完成:



我们就可以测试当前任务是否满足预期,如果当前任务做的不错,就让ai再执行下一步:
当前测试正常,进行下一步

但是这一步出现了bug:吃到食物直接死掉了
我们就可以告诉ai当前有什么问题:
实现存在bug,蛇吃到第一个食物直接显示esc了,并且游戏结束页面的文字无法正常显示


循序渐进地对ai提需求,并且当前需求确认无bug后再去做下一个需求,防止ai手头任务过多出现降智现象。
当前bug已解决,请继续执行之后的任务。


支持了不同颜色的食物


深灰色太不明显了,我们可以继续给ai提需求:
毒物深灰色和黑色的背景太不明显了,把背景做成白色

最后的成品就是一个功能很齐全的小游戏了。


622

被折叠的 条评论
为什么被折叠?



