
Excel 里也能玩 2048。这次我们用 WorkBuddy 配合 VBAYYDS 语音编程,把一句日常需求变成经典配色的 VBA 游戏窗体,再让 AI 自动点击控件、检查游戏规则。
你不必先学会画每一个按钮,也不用从空白代码页开始。先用嘴说清楚想做什么,确认窗体外观,再让 AI 完成代码和测试。这篇文章用真实项目说明具体怎么做,也说明哪些结果已经验证。
本案例采用米白、灰褐和橙黄色。窗体包含 4×4 数字方格、分数、新游戏按钮,以及上下左右按钮;也支持键盘方向键。游戏在窗体内运行,不向工作表写回成绩,也不保存上一次棋盘进度。
先用表格说明游戏规则

图 1 游戏说明表把操作、预期结果和特殊规则放在一起,便于核对。
准备一个支持宏的工作簿,把目标和规则写在“游戏说明”表里。例如,同一行的 2、2、2、2 向左移动后,应得到 4、4、0、0,增加 8 分;不能在同一次移动中继续合成 8。
表格还约定无效移动不加分、不生成新数字;有效移动后,在空格中随机增加一个 2 或 4。点“新游戏”要清零分数并重新放入两块数字。这些例子比“做得和原版一样”更容易检查。
进入 VBA 编辑器,点击 VBAYYDS 菜单并复制项目路径。在 WorkBuddy 新建任务,把这个项目文件夹加入工作空间。这样 AI 才能定位当前工程,而不是只给出一段需要你手动粘贴的代码。
本次演示使用支持 VBA 的 WPS 表格环境。复现前,请确认当前表格软件能运行 VBA,并已准备好 WorkBuddy 和 VBAYYDS;普通 xlsx 文件不能保存宏代码。
直接说需求并确认窗体

图 2 WorkBuddy 输入区中的真实首轮需求,包含配色、布局和先预览的要求。
实际首轮提示词如下,可直接复制;也可以点击语音输入,把同样的需求说出来。
请使用vba相关技能 使用vba窗体完成以下任务:重新帮我做一个2048小游戏,采用经典的米白、灰褐、橙黄色配色。中间是4×4大数字方格,有分数、新游戏和上下左右按钮,也能用方向键玩。布局紧凑,控制窗体高度,所有内容都要完整显示。先做好窗体并打开设计预览,等我确认生成,游戏逻辑稍后再做。
“请使用vba相关技能”指定工具范围;“4×4大数字方格”说明主要内容;配色和紧凑布局约束外观,防止按钮排到屏幕外;“等我确认生成”把外观确认放在代码之前。缺少这些要求,AI 可能做出能运行、却不好操作的界面。
这条提示没有堆砌控件名称或技术参数。先给目标和下一步验收动作,让 WorkBuddy 自主读取项目与技能。若外观不合适,直接描述可见问题,例如“右边按钮太挤,把间距加大”,再看预览。
让 AI 生成代码

图 3 WorkBuddy 在当前任务中读取项目文件和 VBA 相关技能。
检查设计预览时,主要看方格够不够大、分数是否清楚,以及所有按钮是否完整显示。确认生成后,本案例继续发送:“窗体已经生成 请完成游戏代码”。
语音或自然语言描述可以自动生成窗体;生成后的窗体可在 VBA 中手动编辑和微调。AI 生成的窗体和代码留在当前工程里,后续修改仍然可以围绕同一个项目继续提出。
看懂合并规则的关键

图 4 最终工程中的压缩合并过程,负责处理一行或一列的数字。
本项目用二维数组保存棋盘,窗体负责显示数字和分数,键盘事件交给 clsKeyTrap 类处理。四个移动方向共用压缩合并逻辑,避免分别写四套规则后产生差异。
合并时先跳过空格,再比较相邻的非零数字。相同数字合成一块,得分增加这块新数字的数值。代码随后清空“待合并值”,确保刚合成的块不能在同一次移动里再次参与合并。
因此,4、4、8、0 向左移动后是 8、8、0、0,而不是 16、0、0、0。这个例子既是讲给 AI 的规则,也是检查代码有没有写对的方法。
界面刷新只更新数值发生变化的方格,并根据数字选择背景颜色和字号。棋盘规则与显示分别处理,修改配色时就不必跟着改合并算法。初学者不需要先背下这些过程名,可以让 WorkBuddy 结合上述例子解释每一步。
自动测试也要对照规则

图 5 WorkBuddy 展示规则自检摘要,项目日志记录 16 项通过、0 项失败。
以前窗体出错,初学者往往不知道该查哪个按钮、哪段代码。现在可以让 WorkBuddy 调用 VBAYYDS 的 UITest 能力,自动点击方向按钮,再检查界面是否按要求变化。
本次完成了方向按钮、键盘方向键和“新游戏”的操作检查,并另行核对了 8 个实际棋盘状态。规则自检则使用固定输入,不受随机生成数字的位置影响。
| 检查输入 | 预期结果 | 本次结果 |
|---|---|---|
| 2、2、2、2 向左 | 4、4、0、0 加 8 分 | 通过 |
| 2、0、2、2 向左 | 4、2、0、0 加 4 分 | 通过 |
| 4、4、8、0 向左 | 8、8、0、0 加 8 分 | 通过 |
| 2、4、2、4 向左 | 不变 不加分 移动无效 | 通过 |
| 1024、1024、0、0 向左 | 合出 2048 并增加 2048 分 | 通过 |
固定输入自检还覆盖满盘无法移动、满盘仍可合并、存在空格等情况。这里验证了胜利值和结束条件的判断,并不等于已经完整玩到 2048,也不代表胜负提示框的每条交互路径都经过测试。
运行结果与可复用需求

图 6 实际游戏中已合出 8,分数为 16;方向按钮与新游戏按钮均完整显示。
本次验证中,点击和键盘输入都能推动棋盘变化,分数随合并增加;点“新游戏”后分数归零,重新出现两块数字。关闭游戏窗体后再次打开也能运行,但不会恢复之前的棋盘。
下面是根据本案例整理的后续测试提示模板,不是首轮实际发送内容。替换游戏名称和规则后,也可以用于其他小工具。
请使用vba相关技能 使用vba窗体完成以下任务:检查刚才生成的2048游戏。请用窗体测试能力点击上下左右和新游戏,再试方向键。看看合并和分数对不对,新游戏能不能清零。如果有问题,请修好后重新测试。也请用表格里的例子检查连续合并和不能移动的情况,把通过和没通过的结果告诉我。
零基础也可以从描述需求开始,但最后仍要看实际结果。让 AI 把按钮点一遍,再把关键规则算一遍,就能更容易发现“画面看起来对,规则却算错了”的问题。先从这个小案例练习,再逐步把同样的方法用到自己的 Excel 工具中。

