# go_analyzer **Repository Path**: benxuu/go_analyzer ## Basic Information - **Project Name**: go_analyzer - **Description**: 围棋对局与分析助手,仅供个人娱乐。 benxuu@1663.com - **Primary Language**: Python - **License**: GPL-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-29 - **Last Updated**: 2026-06-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README Based on the code map provided, I can see this is a comprehensive Go (围棋) analyzer application with board recognition, GTP engine integration, and a GUI. Let me create a detailed README.md. # Go Analyzer (go_analyzer) 一个功能强大的围棋对局分析与棋盘识别工具,支持从图像识别棋盘布局,并与 KataGo、Leela Zero、GNU Go 等围棋引擎集成进行局面分析。 ## 功能特性 ### 🖼️ 棋盘识别 - 支持从图片中自动识别 19x19、13x13、9x9 等标准棋盘 - 多种识别算法:网格线检测、角点检测、颜色分割 - 自动检测棋盘边界和交叉点 - 支持手动指定四个角点进行精确识别 ### 🔬 局面分析 - **快速分析**: 短时间内获取候选着法和建议 - **深度分析**: 更长时间的高精度分析 - 显示胜率评估、候选点及其胜率贡献 - 支持选择黑白方贴目设置 ### 🎮 对弈功能 - 人机对弈:与 AI 围棋引擎直接对局 - 支持换手执黑/执白 - 悔棋、停一手、认输功能 - 实时显示胜率曲线 ### 📁 文件格式 - 支持 SGF 棋谱导入导出 - 支持 PNG/JPG 棋盘图像识别 ### 🔧 引擎支持 - KataGo - Leela Zero - GNU Go ## 项目结构 ``` go_analyzer/ ├── main.py # 程序入口 ├── analyzer.py # 局面分析器 ├── board_recognition.py # 棋盘图像识别 ├── go_board.py # 围棋棋盘逻辑 ├── gtp_client.py # GTP 协议通信客户端 ├── gui.py # 图形用户界面 ├── config.json # 配置文件 ├── requirements.txt # Python 依赖 └── test_modules.py # 测试模块 ``` ## 环境要求 - Python 3.8+ - OpenCV (cv2) - NumPy - Pillow (PIL) - tkinter (Python 内置) ## 安装配置 ### 1. 安装 Python 依赖 ```bash pip install -r requirements.txt ``` ### 2. 下载围棋引擎 需要下载至少一个围棋引擎: - **KataGo**: https://github.com/katago/katago/releases - **Leela Zero**: https://github.com/leela-zero/leela-zero/releases - **GNU Go**: https://www.gnu.org/software/gnugo/ ### 3. 配置引擎路径 首次运行程序后,在设置中配置引擎可执行文件路径。 ## 使用方法 ### 启动程序 ```bash python main.py ``` ### 棋盘识别 1. 点击"加载图像"或直接粘贴截图 2. 选择棋盘大小(9/13/19) 3. 点击"识别"开始分析 4. 可手动调整识别角点 ### 局面分析 1. 识别棋盘后或手动摆好棋子 2. 选择分析模式: - 快速分析 (5秒) - 深度分析 (30秒) 3. 查看候选着法和胜率 ### 人机对弈 1. 启动围棋引擎 2. 选择己方执黑/执白 3. 点击棋盘落子 4. AI 将自动回应 ## 核心模块说明 ### go_board.py `GoBoard` 类处理棋盘逻辑: - 棋子放置、移除 - 提子规则实现 - 气数计算 - SGF 格式转换 ### gtp_client.py `GTPClient` 类负责与围棋引擎通信: - GTP 协议命令执行 - 分析结果解析 - 流式分析支持 ### board_recognition.py `BoardRecognizer` 类实现图像识别: - 网格线检测与拟合 - 棋角点定位 - 棋子颜色分类 ### analyzer.py `PositionAnalyzer` 类封装分析功能: - 快速分析/深度分析 - 最佳着法推荐 - 局面评估 ## 常见问题 **Q: 识别不准确怎么办?** A: 尝试手动调整四个角点,或使用更清晰的棋盘图片。 **Q: 引擎连接失败?** A: 检查引擎路径是否正确,确保引擎文件有执行权限。 **Q: 分析速度慢?** A: 减少分析时间,或使用更快的引擎配置。 ## 许可证 本项目仅供学习和研究使用。 ## 贡献指南 欢迎提交 Issue 和 Pull Request! ## 界面预览 程序提供直观的图形界面,包括: - 左侧:图像显示与识别控制 - 中间:棋盘显示与操作 - 右侧:分析结果与引擎控制