# ai-chess **Repository Path**: chenddcoder/ai-chess ## Basic Information - **Project Name**: ai-chess - **Description**: 基于pikafish的象棋服务 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-30 - **Last Updated**: 2025-08-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 中国象棋AI服务 这是一个基于 Flask 和 Pikafish 象棋引擎构建的中国象棋 AI 对战服务。用户可以通过 Web 界面与 AI 进行中国象棋对战。 ## 功能特性 - 🎮 完整的中国象棋游戏界面 - 🤖 基于 Pikafish 引擎的 AI 对手 - 🧠 多难度等级设置(简单、中等、困难、大师) - 🖱️ 直观的点击式操作 - 📜 走棋记录和 FEN 字符串显示 - 🔧 引擎状态监控和管理 ## 项目结构 ``` . ├── app.py # Flask 后端服务 ├── static/ │ ├── css/ │ │ └── style.css # 样式文件 │ └── js/ │ └── script.js # 前端逻辑 ├── templates/ │ └── index.html # 主页面模板 ├── engine/ # 象棋引擎目录(需手动放置) ├── test_engine.py # 引擎测试工具 └── Readme.md # 本说明文件 ``` ## 安装与运行 ### 1. 克隆项目 ```bash git clone <项目地址> cd chess ``` ### 2. 安装依赖 ```bash pip install flask ``` ### 3. 下载象棋引擎 从 [Pikafish releases](https://github.com/official-pikafish/Pikafish/releases) 下载适用于您操作系统的引擎: - Windows: 下载 `pikafish.exe` - Linux/macOS: 下载 `pikafish` 将引擎文件放置在 `engine/` 目录中。 ### 4. 运行服务 ```bash python app.py ``` 服务将在 `http://localhost:5000` 上运行。 ## 使用说明 1. **开始游戏**: 访问 `http://localhost:5000` 打开游戏界面 2. **选择难度**: 使用"AI难度"下拉菜单选择AI对手的难度等级 3. **移动棋子**: 点击棋子选择,再点击目标位置完成移动 4. **AI对战**: 点击"AI走棋"按钮或等待AI自动行棋 5. **新游戏**: 点击"新游戏"按钮开始新的对局 6. **悔棋**: 点击"悔棋"按钮撤销上一步移动 ## API 接口 - `POST /get_move`: 获取AI移动建议 - 参数: [fen](file:///Volumes/WD/Users/chendd/Documents/self/Python/chess/static/js/script.js#L25-L25) (当前棋局FEN字符串), [difficulty](file:///Volumes/WD/Users/chendd/Documents/self/Python/chess/static/js/script.js#L286-L286) (难度等级) - 返回: `move` (UCI格式的移动指令) - `POST /reset_engine`: 重置引擎状态 - `GET /engine_status`: 检查引擎运行状态 ## 技术栈 - **后端**: Python + Flask - **前端**: HTML5 Canvas + JavaScript - **象棋引擎**: Pikafish (UCI协议兼容) - **通信协议**: HTTP/JSON ## 故障排除 1. **引擎未找到**: 确保 [engine/pikafish] 文件存在且具有可执行权限 2. **引擎启动失败**: 检查引擎文件是否与操作系统兼容 3. **AI无响应**: 查看日志确认引擎是否正确初始化 ## 许可证 本项目仅供学习和研究使用。