最近我 5 岁的女儿痴迷“谁是卧底”游戏,但是家里人本来就不多,分出来专门的法官角色影响游戏体验。我在微信里尝试了好几个小程序,总有这样那样的问题,要么必须多手机联网发牌,要么让你注册,要么广告太多。
后来总算选了一个凑合能用的,用了几次发现也有问题。一是很多词汇 5 岁的小朋友不认识,要选很多次;二是词汇量太小,经常会刷到重复题;三是经常莫名原因卡死。
我想了想,这么简单的程序,不如找 AI 写一个。我就写了一个 prompt:
请为我写一个玩“谁是卧底”游戏发牌的程序,要求如下:
1. 首先为游戏生成一千个适合谁是卧底的游戏词语对,例如最好是小学生也可以理解的名词,直接写入到 js 代码中,游戏时随机调用一个词语对进行游戏;
2. 游戏开始前可自定义本轮游戏玩家人数和卧底人数,默认的玩家人数为4,默认的卧底人数为1;以玩家1,玩家2,玩家3称呼玩家;
3. 点击游戏开始以后,出现玩家1的界面,但这时词语是隐藏的,只有点击查看词语,才显示词语;玩家1点击下一个后,出现玩家2的界面,但这时词语是隐藏的,只有点击查看词语,才显示词语,以此类推;即显示每个玩家的词语界面时,要先隐藏,只有点击查看才显示;
4. 大家都查看完自己词语以后,出现一个列表页面,列表页面支持每个人查看自己忘记的词语,或者查验身份;
5. 查验身份时,如果玩家身份是平民,那提示游戏继续;如果所有玩家的卧底都被找出,则游戏结束;
6. 在点击查看词语后,在下一位按钮下增加重新开始游戏按钮,以便用户在发现不认识词语时,快速重新开始。
Grok
生成代码显然没遵循 1000 个候选词对的要求,只生成了 10 个,也不支持预览。放弃。
ChatGPT
使用画布,生成代码显然没遵循 1000 个候选词对的要求,只生成了 10 个,支持预览,但预览失败。放弃。
豆包
使用 AI 编程,候选词对生成了大几百,可以看到代码生成过程,可以预览,但是最后的玩家列表“忘词”功能,两次都没调出来。放弃。

秒哒
生成过程中完全看不到代码变化,只能死等。第一版生成从视觉效果上打败了豆包,第一眼印象完成度较高。支持预览,发现功能的最大漏洞在词语的隐藏上,第一个玩家隐藏,第二个玩家直接会显示。这个 bug 用了 3 次会话纠正了过来。后面又用了几轮会话优化一些效果,总共不到 10 轮会话,达到了一个较为满意的程度。
预览如下,也可以访问:https://app-4zsgkyvnt7uq.appmiaoda.com/ 直接体验。

因为这个小程序完全是前端实现的,即使生成过程中看不到源代码,发布以后也可以通过浏览器调试看源码。仔细检查了一下生成的词对,也没有到 1000 个,也有一些不符合我要求的,比如截图里的“番石榴”,5 岁孩子大概率不知道怎么描述。但是凑合能用吧。
从这轮 PK 来看,秒哒赢了。假如让我自己来写的话,写成豆包那样可能需要 1 天,写成秒哒这样可能需要 3 天。因为做过个人建站的就知道,功能目标是确定的,但 UI 的调整是没有尽头的,这次秒哒在这块做得算不错了。
从这次体验来看,针对特定场景进行的 AI Coding 优化,可能还真有一些空间。