用eminiro构建国际象棋游戏

上周,谷歌发布了 Gemini 2.5 Pro。它在各项基准测试中表现出色,据说特别擅长编码和逻辑推理。那么,没有什么比用它来开发一个象棋应用,并用这个应用与AI对战更好的方法来验证这些说法了。

在这篇博客里,我将分享使用Gemini 2.5 Pro制作一个国际象棋应用的过程。虽然可以把它作为代码助手集成到IDE里,但我主要使用Google的AI Studio来完成这个项目以展示其简便。核心想法是制作一个可以使用的国际象棋应用,让人类用户可以和这个模型对战。

自它们诞生以来,大型语言模型(LLMs)就被应用于编码任务。这早已不是秘密,这是它们的主要应用场景之一。我经常在合作的公司中看到这种情况。如今,几乎每家公司的代码开发工作流都以某种形式集成了大型语言模型。像这样的实际编码项目中测试Gemini 2.5 Pro提供了超出标准基准的见解。

首先,我想了解一下借助Gemini开发这样一个应用程序实际上会是什么样子。我的背景主要是Python,前端开发的知识不多。所以保持架构简单是非常重要的,这样我能自己理解、阅读,并且自己也能调试代码。

我最初的提议旨在与Gemini一起制定一个合作计划:

我想从零开始构建一个与LLM连接的国际象棋应用。用户可以用鼠标下棋,当轮到电脑走棋时,会调用LLM获取下一步棋。我前端开发经验不多,希望能保持简单。我对AI工程很熟悉,要使用的LLM有一个Python SDK,我也很熟悉怎么用。但如果更简单一些,我们也可以只用REST API。请给些建议,关于构建这个应用的架构和技术栈。我希望能在浏览器上运行。对我来说,最看重的是简洁和代码量最少。

双子建议如下所示:

这听起来像个合理的计划。由于前端涉及的技术我不太熟悉,我想先从这个开始,确保它行得通,然后再开始做后端。

建议的架构如下:

作者供图

我的下一步是让Gemini来构建一个非常简单的独立网页应用。目标是创建一个功能性的棋盘界面,让用户可以为双方下棋,暂时不连接任何后端或LLM。

双子回复了所需的HTML、CSS和JavaScript代码如下,如下解释和设置说明:

它还建议安装 VS Code Live Server 插件,便于在浏览器中轻松预览本地文件。

他/她/他们解释了这个初始界面的操作机制:

运行Gemini生成的代码后,应用加载了,但有些部分不见了。

作者供图

双子座提出建议,可能是暂时的网络问题、CDN问题,或者浏览器扩展阻止了访问外部资源——这些都是合理的解释,确实如此。它建议下载这些图片并在本地提供服务。这样感觉更可靠,尤其是对于可部署的应用程序而言。

作者的图片

不过,提供的GitHub链接不对,出现了404错误。链接指向了…/img/chesspieces/wikipedia,而正确的路径应该是…/website/img/chesspieces/wikipedia。手动修正并下载后,棋子就显示出来了!

作者提供图片

后端

在基本用户界面完成后,是时候开始构建后端了——一个用于管理游戏状态并与Gemini通信的Flask应用程序。

首先,我想确认前端结构能否支持由LLM生成的操作,而不仅仅是用户拖拽产生的操作。

双子座的解释真是清楚又让人放心。

作者供图

这意味着我们可以根据LLM的反馈通过编程更新板状态。

作者供图

在添加LLM集成之前,我测试了更新的UI与基本的Flask后端(现在处理移动验证)之间的连接。立刻就遇到了一个bug:白方走了一步后,尝试移动黑方棋子时会显示“不是你的回合”的错误,但实际上轮到黑方走了。

作者供图

我把错误信息和描述反馈给了Gemini,它的建议一开始并没有解决问题。有一次,它给出的回复完美地反映了我调试烦恼。

这张图片来自作者

确实如此!查错的时候真的会让人觉得莫名其妙 😅

双子座仍然愿意帮忙,这点还是很不错的。

作者的图片

在添加了更多的日志信息后,Gemini 最终锁定了问题,并找到了正确的解决办法。

作者的这张图片

说实话,这个阶段我没有深入探究根本原因。我们已经接近终点,我急于完成最后一步:双子座整合以生成动作。

将 Gemini 的调用集成起来相对简单得多。关键在于设计一个好提示。为了减少 LLM 产生非法操作的可能性,我决定不仅提供当前棋盘状态(用 FEN 表示)和走法记录,还提供了所有合法操作的明确清单。

这基本上就是核心LLM集成的主要内容了。我最初将Gemini 2.0 Flash模型设为默认模型,后来我在界面上增加了一个下拉菜单,让用户能从不同的模型中选择,其中包括Gemini 2.5 Pro。

作者拍摄的视频

和2.0 Flash的比赛相对简单。该模型经常未能识别简单的威胁,比如悬劫和明显的将军威胁。

接下来,我切换模型到Gemini 2.5 Pro。差别立刻显现,游戏感觉难度大增。

这是作者拍的视频

直到中盘 Gemini 才开始失误丢子,我挺高兴它犯了错——我觉得我当时也不占优势 😅

注意:因为下午响应时间变长了(可能是美国那边使用量增加的缘故),我在Gemini再出了几招错着后就停了视频。“帮帮忙,我们的TPU都要融化了” 🤣),所以你只能相信我后来把这盘棋下完了 😆

为了更深入了解大型语言模型的“思考”过程,我增加了一个额外的功能:我修改了提示,要求Gemini不仅给出一步棋,还要在提供棋步之前阐述它对当前棋局的思考过程或想法。这非常有用,偶尔,Gemini还会展示出一些个性:

作者的图片

用Gemini 2.5 Pro构建这个棋盘游戏应用程序是一次令人惊讶的实验,关于AI辅助开发。尽管一开始前端经验有限,我能够依赖Gemini进行架构设计的建议、代码生成,甚至在一些棘手的调试过程中——包括我们共同经历的那些“诡异”时刻!

THE END
0.独显直连锐龙神机!拯救者R9000P笔记本评测:游戏旗舰唯一标杆国际象棋相对性能倍数为69.55,得分33385。 6、wPrime 单核跑32M数据用时31.215秒,多核跑1024M数据用时99.999秒。 7、X264 FHD Benchmark 编码FHD X264视频,每秒可编码61.01帧。 8、X265 FHD Benchmark 编码X265视频,每秒可完成63.57帧。 和同系列的旗舰移动处理器锐龙9 5900HX相比,拯救者R9000P搭载的锐龙7 58jvzquC41pg}t0v~ftk|ft|3eqo521@:719;6797acnr/j}r
1.战斗版国际象棋下载战斗版国际象棋汉化补丁修改器MOD战斗版国际象棋Battle vs. Chess 制作公司:TopWare Interactive发行公司:SouthPeak Games游戏平台:XBOX360游戏类型:休闲益智PUZ官方主页:点击查看语言版本:英文发售日期:2011-05-11 购买 下载虾说 单人单机3D画面菜鸟入门 益智、休闲jvzquC41yy}/cun4354og}4|v1hbv}qgxuiig|xu1fuxp8
2.国际象棋世界第一被退赛!只因穿牛仔裤网络游戏新闻直播吧12月28日讯 本月26日,国际象棋世界快棋和超快棋锦标赛在纽约举行,然而比赛第二天,世界第一马努斯-卡尔森就被取消了比赛资格,原因是他穿着牛仔裤比赛并且拒绝更换。 卡尔森在周五身着牛仔裤出现在赛场,根据世界国际象棋协会的着装规定,这是不允许的,协会最初发出了警告和200欧的罚款。但之后卡尔森拒绝更换牛仔jvzquC41pg}t0:<3954dqv4eqpzfp}4344?32;9142764=54:0yivvq
3.FPS国际象棋配置要求FPS国际象棋攻略FPS国际象棋游戏里玩家可以操控各种枪械武器的西洋棋,进行作战,在一场又一场的决斗中击中并获得对手的棋子,畅玩同时不妨碍大家学习国际象棋的规则。jvzquC41in4bnr7350tfv8mvon532;9/7174;@96;a8/j}rn
4.桌游合集桌游合集,包含一些联机网页游戏:卡坦岛、璀璨宝石、卡卡颂、飞行棋、UNO、谁是卧底、阿瓦隆、一夜狼、狼人杀、行动代号、拉密、德国心脏病、爆炸猫、毒药、出包魔法师、达芬奇密码、五子棋、围棋、象棋、国际象棋、军棋、跳棋、黑白棋、斗地主、井字棋、路墙棋、炸飞机、jvzquC41icsf0qznnsoo0ls1
5.中国象棋大师2010中文版免费下载一款象棋游戏。Chinese Chess Master 是为 iPhone 和 iPod touch 设计的高级中国象棋游戏。 Chinese Chess Master 使用的棋子类似于国际象棋的。然而,各个棋子的步法变化,以及棋盘的设计令象棋成为其同类一种既有趣又充满挑战性的的变体。 Chinese Chess Master 适合所有不同水平的玩家。 jvzq<84582mbon35824dp8ueicsfu86443?/j}rn
6.书法比赛活动总结范文(2)举行国际象棋比赛,届时让隐藏于学校内的高手们一展拳脚,充分调动敏锐的思维,创造一场智者的盛宴。 国际象棋社有着强大的“师资力量”,授课人为21级21班陈以頔(社长),国家一级运动员,国家棋协大师,自幼学习国际象棋,就开始多次获得该项目的全国冠军,为近年来历届省市运动会的冠军。已于__年入选国家少年队。jvzquC41yy}/jjtskmgo0lto1jgpyns197