返回 AI 项目
AI 项目
8 分钟阅读

Chess

最近迷上了两样事情,国际象棋和德州扑克。

德州扑克的项目暂时先放在后头,因为她的复杂程度会更加高,涉及的场景非常多,规则非常庞大,比如Flush大于同花,同花大于顺子,顺子大于三条,三条大于Two Pair等等这些内容,所以现在暂时还不愿意去写。

所以在简单学习了国际象棋的基本规则之后,准备搭建一个Web版本的国际象棋,现在已经提交到了Github仓库中。

搭建过程

这个项目初步搭建的时候,没有想着沿着Vibe Coding的这种Agent模式去推进开发进展,其实也就是想简单写一个HTML的页面,最开始可能只有一个页面,所有的CSS和TS代码都all in在了上面。

一开始是使用Doubao的Chat模式(你没看错,就是大名鼎鼎的情绪包去搭建的),后面逐渐切换到了AI Agent的模式去推进这一块的开发内容。心路历程是:Deepseek V4 Pro把AI模型的价格打下来了,而且Trae CN的模式也更加成熟了,CURSOR以及AntiGravity等等内容的推进是非常迅猛的。

后续又在使用了DEEPSEEP V4 Pro + Trae CN进行了一次代码上的优化甚至重构

国际象棋的规则

国际象棋真的是一件很有意思的事情。

Chess Pieces Strategic Battle: Queen, Rook, Bishop, and Pawn each wield their unique movement patterns in an epic anime-style showdown on the board

国际象棋的核心规则可以分为棋盘棋子、行棋规则、胜负判定三大类,简单梳理如下:

  1. 棋盘与棋子
    • 棋盘:8×8 共 64 格,由深色(黑格)和浅色(白格)相间组成,摆放时棋盘右下角必须是白格。
    • 棋子:双方各16枚,包括 1王、1后、2车、2象、2马、8兵。白方先行,之后双方轮流走棋。
  2. 各棋子行棋规则
    棋子走法规则特殊说明
    横、竖、斜向每次只能走1格不能主动走入被对方攻击的格子;不能与己方王处于相邻格
    横、竖、斜向可走任意格数,无阻挡时是棋盘上威力最强的棋子
    横、竖方向可走任意格数,无阻挡时参与王车易位(见下文特殊规则)
    斜向可走任意格数,无阻挡时只能在同色格子移动,双象分别走黑格和白格
    走“日”字(先横/竖走2格,再斜走1格;或先横/竖走1格,再斜走2格)可以跳过其他棋子;不受阻挡
    前进规则:
    1. 未移动过的兵,第一步可选择走1格或2格
    2. 移动过的兵,每次只能走1格
    吃子规则:斜向前1格吃对方棋子
    到达对方底线必须升变(可变为后、车、象、马中的一种)
  3. 特殊行棋规则
    • 王车易位:王与未移动过的车之间无其他棋子,且王未被将军、易位路径不被攻击时,王向车方向移动2格,车越过王移动到相邻格。分为短易位(王与王翼车)和长易位(王与后翼车)。
    • 吃过路兵:当一方兵从初始位置走2格,恰好与对方兵横向相邻时,对方兵可立即斜向前吃掉这个兵,且停在该兵原本走1格的位置。此操作必须在对方兵走2格的下一步立即执行,过期失效。
    • 兵的升变:兵走到对方底线(白兵到第8格,黑兵到第1格)时,必须替换为后、车、象、马中的一种(不能不变,也不能变王),通常优先升变为后。
  4. 胜负与和棋判定
    • 胜负判定
      1. 将死:一方王被攻击(将军),且无法通过走王、挡子、吃对方攻击棋子的方式解除将军,即为将死,对方获胜。
      2. 超时负:在规定时间内未走满规定步数,判负。
      3. 认输负:一方主动认输,对方获胜。
      4. 违规负:多次违规(如走禁着、触摸棋子后不走该棋子等),判负。
    • 和棋判定
      1. 逼和:一方王未被将军,但所有合法走法都会让王被将军,或无任何合法走法,判和。
      2. 三次重复局面:同一局面(棋子位置、轮走方、王车易位/吃过路兵权利均相同)重复出现三次,任一方可申请和棋。
      3. 五十步规则:连续50步内没有吃子和兵的移动,任一方可申请和棋。
      4. 双方同意和棋:对局中双方协商一致,可判和。
      5. 无子可胜:双方剩余棋子都无法将死对方(如只剩双王、王+象vs王、王+马vs王),自动和棋。

技术栈选型、后端 API、前端路由与走子校验等实现细节,见单独一篇:国际象棋 Web 项目技术实现

商业价值部分

这个东西的商业价值几乎为零,现有的国际象棋APP,做得再牛逼,像国象联盟这个级别的App,也几乎就是以贩卖周边来作为赢利点。比如卖一下国际象棋的棋盘和棋子等等。

App内购买(IAP)的商业模式,是非常难做起来的,至少对于一个更愿意从技术角度思考问题的人来说,这是难于登天的。

后续烧钱部分

直接花了80多块买了一副39cm * 39cm棋子大小的国际象棋,棋盘也是非常大。不舍得花更多的钱,去买那个橡脂材质的,那个确实是牛逼的,手感看起来就很不错。 img.png

还有一些宝可梦周边的国际象棋,收藏类型的玩具,2600块,感觉这也是一条烧钱的路。

相关文章

AI 项目
公开
12 分钟
国际象棋 Web 项目技术实现
React + Python Tornado + Stockfish 搭建离线国际象棋 Web 应用的技术细节。