VinXiangQi 象棋 AI 连线实操指南:手把手从零跑通到自动走棋
【免费下载链接】VinXiangQiXiangqi syncing tool based on Yolov5 / 基于Yolov5的中国象棋连线工具项目地址: https://gitcode.com/gh_mirrors/vi/VinXiangQi
VinXiangQi 是一款基于 YOLOv5 的中国象棋连线工具,它能盯着你正在下的对局画面,自动识别棋盘、调用 UCI 引擎算出最佳走法,再自动点击替你把棋走完。适合想在网页版、客户端象棋里获得实时提示的棋友。跟着这篇指南做完,你就能看到引擎的建议实时出现在识别画面上,并且可以勾选自动点击让它帮你续盘。
先把软件跑起来
环境要求很简单:Windows 系统 + .NET Framework 4.8 + Visual Studio(2019 及以上即可打开老工程)。三步走:
① 拿代码。命令行执行:
git clone https://gitcode.com/gh_mirrors/vi/VinXiangQi克隆完成后目录下应能看到VinXiangQi.sln和packages/文件夹(依赖包已随仓库提供,不需要额外还原)。
② 编译。用 Visual Studio 打开VinXiangQi.sln,选 Release 后生成解决方案。确认成功的方式:VinXiangQi/bin/Release/里出现了VinXiangQi.exe。
③ 跑起来。双击VinXiangQi.exe,主界面能正常打开、左侧识别区域显示"未找到窗体"(因为还没连线目标)就算通了。
它是怎么工作的
整条链路是:截图 → 识别 → 算棋 → 点击,四个环节各有分工。
- 截图:程序按"方案"锁定目标窗口的标题或类名(比如天天象棋的窗口类
QQChess),后台抓取该窗口画面; - 识别:YOLOv5 模型(默认
nano.onnx,640x640 输入、20 个类别)在一帧画面里找出棋盘区域和 32 枚棋子,连续多帧一致后才确认为稳定棋盘; - 算棋:稳定局面转成 FEN 后发给 UCI/UCCI 引擎,思考参数由"引擎思考时间、深度、线程数"控制,走法显示在"引擎思考输出"区;
- 点击:把建议落点换算回游戏窗口坐标,通过后台消息或前台模拟点击完成走子。
调试技巧:开"调试状态"时,左上角会实时显示截图效果——截图显示不全就调大缩放比,出现黑边就调小,直到窗口完整覆盖图片,再关闭调试。
核心功能逐个看
连线方案与截图模式
方案是Solutions/目录下的 TXT 文件,内置了天天象棋、JJ 象棋等常用方案,也可以点"寻找窗口句柄":按下按钮后 2 秒内把鼠标移到目标窗口上,程序就记录该窗口信息。确认方案可用后点"保存当前方案",下次启动直接选它。方案文件格式很直白:
截图标题=中国象棋棋力评测 截图类= 点击标题=TKMCGame 点击类=- 后台截图:只抓窗口不抓桌面,窗口被遮挡也能用,但部分浏览器窗口会截出黑屏
- 前台截图:通用兜底,但要求窗口不被遮挡
- 鼠标同理分后台/前台两种,点击失败时切前台鼠标
引擎管理
支持 UCI 和 UCCI 协议,可以同时挂多个引擎(比如一个象棋引擎 + 一个国际象棋引擎的 UCCI 实现),在"引擎设置"面板里单独配置思考时间、深度、线程数,还能按引擎导出/导入自定义选项。引擎可执行文件路径写错时程序会直接弹"找不到引擎",注意路径要写到 exe 本身而不是文件夹。
自动点击(自动续盘)
想让软件在对完一步后自动点"继续/确定"按钮,就需要先框一个点击模板:打开"自动点击管理",在右侧识别画面上点两下确定框的左上角和右下角,出现绿色框后保存。要点:框尽量小而准,只圈住按钮关键区域,不要框整个按钮——模板越小,画面匹配越快。保存后勾选连线设置里的"自动点击",程序每 2 秒扫一次画面,找到模板就点一下。
参数怎么选
默认参数是:引擎思考时间 2.0 秒、检测间隔 550ms、线程数 4、YOLO 模型nano.onnx。按设备档位推荐:
| 设备档位 | 引擎思考时间 | 检测间隔 | YOLO 模型 | 适合干什么 |
|---|---|---|---|---|
| 低配(4 核 / 集成显卡) | 1.5 秒 | 800ms | nano/small.onnx | 学习识别流程、轻度辅助 |
| 中配(6~8 核) | 2.5 秒 | 500ms | medium.onnx | 日常对弈辅助 |
| 高配(多核 + 独显) | 4.0 秒 | 300ms | large.onnx | 长时间对弈、自动续盘 |
调参思路就两条:检测间隔越小画面刷新越跟手,但对 CPU 占用越高,低配先保证不卡再谈速度;思考时间决定引擎分析深度,线上对局别给太长,超过对手出子节奏的提示意义不大。
换个思路用
开局阶段用开局库:适合研究新布局的棋友。在"开局库设置"里勾选使用开局库或云库,可选"最高评分"或"随机"两种取法。开局阶段会优先从库里取走法,既快又稳,能明显看到引擎输出区里走法来源切换成开局库而非实时搜索。
复盘棋谱:适合想搞清楚"哪步走错了"的人。把对局回放打开后正常连线,软件会逐步给出每步的评分和最佳应对,配合截图画面能直接看到当时局面下引擎推荐你走的另一条线。
人机对练:适合日常练手。开一局本地对弈,勾选自动点击并框好"继续"按钮,软件自动替引擎方走棋并续盘,你只需要下自己的棋,适合反复磨某个套路。
排坑清单
识别画面是黑的→ 目标窗口渲染方式不支持后台截图(浏览器最常见) → 勾选"前台截图",代价是窗口不能遮挡。
点出去了但游戏没反应→ 后台鼠标消息被目标程序忽略 → 勾选前台鼠标模式;代价是点击期间你的鼠标被占用,别动它。
分析中途停住了→ 持续识别模式下偶发丢失棋盘状态 → 点"重新检测棋盘"强制刷新一次即可。
建议的落点偏了半格→ 缩放比没调准,识别坐标和实际窗口对不齐 → 重开调试状态,按左上角截图效果微调缩放比直到无黑边无缺角。
引擎提示"找不到引擎"→ 路径填成了文件夹或中文路径带空格没转义 → 把路径指到具体的引擎 exe 文件上,必要时换英文目录。
源码导航
- VinXiangQi/DetectionLogic.cs:识别主循环,截图、多帧确认棋盘、触发引擎计算都在这里
- VinXiangQi/EngineHelper.cs:UCI/UCCI 进程封装,负责发 FEN、收 bestmove 和思考信息
- VinXiangQi/XiangQiGame.cs:棋盘数据结构和走棋规则处理
- VinXiangQi/ScreenshotHelper.cs:窗口句柄搜索与截图实现
- VinXiangQi/MouseHelper.cs:前台/后台两种鼠标点击的封装
- VinXiangQi/ProgramSettings.cs:全部可调参数的默认值集中地,改默认行为看这里
资源与提醒
- 使用文档:仓库内
README.md,界面分区、方案格式、自动续盘步骤都有图示 - 问题反馈:仓库 Issues 区,或者加软件/技术交流群 755655813
- 二次开发:
packages/下已内置 OnnxRuntime、Yolov5Net 等依赖,改完直接重新生成即可
最后多说一句:连线工具的价值在于帮你复核自己的判断,长期开着自动走棋,棋感反而可能退步——把它当第二双眼睛用,而不是替身。
【免费下载链接】VinXiangQiXiangqi syncing tool based on Yolov5 / 基于Yolov5的中国象棋连线工具项目地址: https://gitcode.com/gh_mirrors/vi/VinXiangQi
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考