自建了一个 AI 棋友:三合一网页棋类项目实测,AI 功能到底是不是噱头?

先说结论:不是噱头,而且是我今年自建的、使用频率最高的一个服务。

最近把一个开源的三合一网页棋类项目(象棋 / 五子棋 / 军棋)部署到了自己的飞牛 NAS 上,连续用了两周,每天平均开 2~3 次。下面从「值不值得部署」「AI 功能是不是营销词」「有哪些不足」三个角度把真实体验讲清楚。

一、基本盘:它是什么

项目 情况
形态 纯网页,打开即玩,不装 App、不注册
内容 象棋(标准规则 + 三档 AI)、五子棋、军棋翻棋(标准 12×5 棋盘)
技术 纯 Node.js 自研,无外部依赖,MIT 开源
部署 Docker 4 行命令,实测内存占用 8.7 MB
数据 存档 / 战绩全部落在 NAS 本地,不上传任何第三方

首页

细节层面做得比较扎实:象棋是每方 16 子、开局 44 步合法走法的标准局面(我用引擎验证过);军棋行营”空营可进、营内不可攻”、大本营”可进不可动”这些容易做错的规则都对;五子棋困难档会主动封堵活四。

二、AI 功能:哪些是真有用,哪些是噱头

这是我最想聊的部分。它标了 8 项 AI 功能,我逐个用了两周,按「真实价值」排序:

第一梯队:每天都用

1. 走法点评(本机引擎,不走网络)

你每走一步,本机的 α-β 搜索会把「你这步之后的局面」和「最优解」对比,直接给出亏分:

走法点评

实测一次:走完提示「这步亏了约 610 分(≈ 一个马或炮),更好的下法是炮往前走 7 格吃掉对方的马」。关键是它不消耗任何大模型 token、零延迟——这是本地引擎,不是套壳 LLM。

2. AI 教练(接大模型,说人话)

AI 教练

这里有个我认为很关键的设计:它喂给模型的局面描述是全中文的(”左起第 2 列的炮、从红方底线往上第 3 行”),所以模型回复也天然是中文人话,而不是 b8 → h3 这种字母坐标。实测回复示例:

建议:炮二平五先架中炮,把对方的将门锁住;你右翼的车还没出动,下一步记得亮车抢占肋道。

另外做了 5 种人格(严厉 / 温柔 / 毒舌损友 / 老棋手),以及”模型只回英文时自动补问一次强制中文”的兜底——这个细节我测过,有效。

3. 每日一题 + AI 出题(带本地校验)

每日一题

按用时评 S/A/B/C 级,还有连续打卡天数。填了模型可以”AI 现场出题”,但我更看重它的校验逻辑:生成的象棋局面必须在本地通过”真的存在一步将死”的穷举验证,五子棋必须真的”一步成五”,验不过就回退本地题库。这比直接把大模型的输出甩给用户靠谱得多。

第二梯队:偶尔用,但确实有用

  • 棋风画像:从真实战绩算出「输的局平均 44 秒 vs 赢的局 135 秒 → 你输在太急」,数据是从我自己对局里出的,不是套话
  • 军棋记牌推理:实时列出 50 枚棋子里还剩哪些没露面、还剩几个司令和炸弹
  • 赛后 AI 复盘:三句话讲清胜负手

更多功能

第三梯队:锦上添花

战绩海报(文字可自定义、实时预览)、对手嘴炮(吃子时甩一句”哎哟,送子观音?”)、开局库讲解、自适应难度(三连败自动降档)。

一个重要的设计约束:不填模型,8 项功能里 6 项照样能用(本地计算 + 内置题库/金句)。只有”AI 现场生成”那几项才需要模型。这一点我觉得比”必须登录才能用 AI”的常见做法厚道。

三、模型接入体验

模型设置

接的是任意 OpenAI 兼容接口(BaseUrl / KEY / 模型名三个框)。两个细节做得好:KEY 输入框默认打码,点了眼睛才显示;旁边有个 🔌 测试按钮,填完点一下,通不通、不通是哪里的问题(KEY 失效 / 模型名错 / 地址不可达)当场告诉你,不用去猜。

四、不足(诚实部分)

  1. 军棋 AI 比较直:吃子优先级评估,会做出”明知亏还去吃”的判断,深度不如象棋的 α-β 搜索
  2. 没有手机 App / PWA 推送:只能靠浏览器收藏或桌面快捷方式
  3. 双人同屏是共用一台设备,不是联机对战——厂商明确说是设计如此,但确实有人会误解
  4. AI 教练依赖模型质量:换了便宜模型,建议质量明显下降(本地走法点评不受影响)

五、值不值得部署?

适合:家里有 NAS / 飞牛 / 任何能跑 Docker 的机器;想在工作间隙有个”有质量的放松”;对手游和短视频已经有点腻。

不适合:想要联机对战、想要天梯排位——它是自用型工具,不是竞技平台。

部署就四行命令(README 里有),数据卷挂上不丢档:

📦 新进展:已打包飞牛应用商店安装包(.fpk,真机安装/启停/卸载全流程验证通过),即将上架应用中心——到时在应用中心搜索「摸鱼棋乐」一键安装,无需命令。当前最快方式:

最快方式:不用克隆源码,直接拉公开镜像(GitHub Actions 自动构建更新):

docker pull ghcr.io/personal82555/moyu-qile:latest

docker run -d --name moyu-qile --restart unless-stopped \
  -p 7025:7025 -v "$PWD/data:/app/data" \
  ghcr.io/personal82555/moyu-qile:latest

也可以从源码构建:

git clone https://github.com/personal82555/moyu-qile.git
cd moyu-qile && docker build -t moyu-qile:latest .
docker run -d --name moyu-qile --restart unless-stopped \
  -p 7025:7025 -v "$PWD/data:/app/data" moyu-qile:latest

开源地址:github.com/personal82555/moyu-qile(MIT)。

最后一句:这两周我刷短视频的时间明显少了。不是它多神,是「20 分钟倒计时 + 一盘必须动脑的棋」这件事本身,比无限下拉的 feed 更适合用来给大脑换个挡。


📂 更多推荐

  • 查看更多相关文章:https://www.88531.cn
  • 关注公众号「实用软技」获取更多软件推荐和实用技巧
  • 所有软件均提供夸克网盘下载,公众号回复「软件」一键获取
100T高转存免费网盘资源精选【持续更中~~~~】:点击查看

发表回复