无数年前,当多数后端工程师还埋首于分布式系统的搭建、数据库查询的优化时,有个年轻人,却将目光凝在了桌角那副磨了边的中国象棋上。不为 KPI,不求商业化,只凭一腔热爱,便决意用 Java 一行行代码,手搓出一盘属于自己的中国象棋。
岁月辗转,风霜几度,那盘曾在屏幕上跳动的象棋,终究湮没在了时光里。直到某天,Trae 的 Solo 破空而来,脑海里反复回响着 "Solo...Solo..." 的旋律,我心里默默一笑:既然如此,不如让我重新拾起旧念,独个儿 Solo 一盘象棋如何?
工欲善其事,必先利其器
首先下载和准备好 Trae ,这里我用的是 Trae 的国际版。
编程规则:约定大于配置
按照个人习惯,编程首先要遵循"约定大于配置"的规则,这么多年了这个规则仍是未变,和 AI 配合更是如此。
首先,我在"设置"-"规则"中配置一个 project_rules.md ,用于约束项目的编码风格和要求。

规则中用自然语言编写上一些基础的注释和风格要求,大模型会按照规则描述进行遵守。

额外准备:预备静态资源
然后,先提供预先准备好的静态资源,中国象棋需要棋盘、棋子、音效等的一些贴图......

到此,准备工作完毕。
哦豁,Pro 昨天刚到期......预先 Solo,必先 Pay。
开始 Solo
这里我选择的是 SOLO Coder 模式,并开启了 Plan 确认。

编写好提示词,一个好的提示词是人机交互的关键。

可以看到,大模型开始规划和编程了,这里让我确认 Plan 计划,没什么大问题,点击确认。

模型继续进行任务,中国象棋的"重生"近在咫尺!

Solo 完成?
最后,任务执行完毕,到这里一共耗时 15 分钟。现在的大模型已经完全可以支持起手 Test,这里我们直接点击接受所有文件变更。

直接在我熟悉的 IDE 中运行程序。

完蛋,快是快,这盘棋翻车了,棋子贴图、棋盘都不是我想要的贴图呀,而且棋子无法移动!
"重生"失败,欲哭无泪。咋办?呵呵,这岂能难倒一个资深的后端工程师。
二次"重生"
于是,我更换了个模型,最近最火热也是我使用频率最高的 Genimi Pro。好家伙,关键时候看你了!
然后,分析第一次尝试失败的原因:AI 并没有明白提供的静态资源怎么使用,作为人类我是怎么识别的?对了,静态资源对应棋子和选中棋子的效果,以及空白的棋盘,有拼音有名字。可以稍微改进下提示词,告诉 AI 怎么用棋子对应这些静态资源应该就可以了。

好,我们再次开始。
这次效果很好,符合预期,有一些显示错位,我们找 AI 再进行微调。


这次各就各位,展示完美了!

涅槃重生
中国象棋的"神"在于其玩法和规则,往常的大模型擅长的代码落地更多的是"所见即所得"的前端界面。这次侧重于后端落地的一盘棋,要去校验规则才能确认其是否"及格"。
下面按照 5 星制进行打分。
项目规则
篇头,我用"约束大于规则"进行了 project_rules.md的编写,这里验证下其在 Solo 模式下的落地效果。


可以发现,Solo 模式下生成的类中,只有 1/3 有要求的注释。因此这里只能给 2 星。
打分:⭐⭐☆☆☆
游戏规则
接下来是游戏规则,车直线、马走日、跑翻山......尝试了几步,规则实现非常精准,先后手也非常的精确。大模型仅用 11 个 Java 类就完美落地。此项我觉得可以给满分。

打分:⭐⭐⭐⭐⭐
后端服务
再来是最后一项,启动后端通信服务,启动成功。

连接一下并加入看看。



很不错。就是功能使用上有点糊涂,房间 ID 是自动生成的,不是指定的,怪不得一直校验不通过,这块属于使用者对功能描述不清;另外通信上存在一点小 BUG,找 AI 修正后完美解决。此项我给 4.5 星。
打分:⭐⭐⭐⭐✬
人机 Solo 交互的时代,面向结果编程的革命
"人工智能时代,是一场面向结果编程的革命",重生的是一个人的创意和信念。
至此,仅仅 30 分钟。没费多少功夫,依托 TRAE Solo 的能力,我甚至没再像当年那样死磕棋子的碰撞逻辑和界面渲染,只给出核心需求,它便帮我完成了从需求文档到环境配置再到最终部署的全流程。
脑海里还循环着 "Solo" 的旋律,我移动鼠标落下第一枚棋子,清脆的落子音效响起的瞬间,像是和多年前的那个年轻人完成了一场跨时空的对弈。这一盘 Solo,下给时光,也下给始终没丢的那点执念。
本项目开源地址:
致敬我们的青春。