article
README
🚀 国际象棋 ChessPal 使用说明
ChessPal 是一款基于 MCP 协议的国际象棋引擎,它支持通过 STDIO 或 SSE 模式进行通信。该项目具备丰富的功能模块,能为用户带来优质的国际象棋体验,无论是标准规则还是变种玩法都能轻松应对。
🚀 快速开始
环境准备
- 安装 Python 3.8 及以上版本。
- 安装 Poetry 依赖管理工具。
- 可选择下载 Stockfish 引擎。
项目结构
chesspal/
├── chesspal.py # 主程序入口
├── engines/ # 引擎适配模块
│ └── stockfish.py # Stockfish 引擎接口
├── protocols/ # 协议实现
│ └── mcp.py # MCP 协议适配
└── tests/ # 测试用例
├── unit/ # 单元测试
│ └── test_chesspal.py
└── integration/ # 集成测试
└── test_stockfish_engine.py
✨ 主要特性
- 游戏逻辑:实现标准国际象棋规则和变种玩法。
- 引擎适配:支持 Stockfish 引擎接口。
- 网络协议:MCP 协议适配。
- 用户界面:提供 REST API 和 SSE 接口。
📦 安装指南
标准输入输出模式
poetry run python -m chesspal.chesspal --transport stdio
SSE 模式
poetry run python -m chesspal.chesspal
💻 使用示例
基础用法
# 标准输入输出模式启动命令
poetry run python -m chesspal.chesspal --transport stdio
# SSE 模式启动命令
poetry run python -m chesspal.chesspal
高级用法
{
"fen": "r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq - 0 1",
"move_history": []
}
以上是请求示例,可根据实际情况修改 fen 和 move_history 的值。
📚 详细文档
项目配置
引擎设置
{
"engine": {
"name": "stockfish",
"path": "/usr/bin/stockfish"
},
"protocol": {
"type": "mcp",
"options": {}
}
}
请求示例
{
"fen": "r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq - 0 1",
"move_history": []
}
依赖管理
添加新依赖
# 生产环境依赖
poetry add 包名
# 开发环境依赖
poetry add --group dev 包名
代码规范
项目遵循以下标准:
- 所有函数添加类型提示。
- 遵循 PEP 8 编码规范。
- 使用 Black 格式化代码。
- 使用 flake8 进行代码检查。
- 使用 isort 管理导入顺序。
贡献指南
提交规范
- 每个提交需包含详细的提交信息。
- 遵循分支命名规范:feature/新功能名 或 bugfix/问题 ID。
- 提交前需通过所有测试用例。
代码审查
- 所有提交的代码都需要经过至少一位维护者的审查。
- 每个 Pull Request 必须包含详细的说明文档。
测试方法
单元测试
poetry run pytest tests/unit/
集成测试
poetry run pytest tests/integration/
覆盖率检查
poetry run coverage run -m chesspal.chesspal && poetry run coverage report
项目维护
版本控制
- 使用 Semantic Versioning 协议进行版本管理。
- 遵循发布流程:
poetry bump --version <new_version> poetry publish
发布说明
生成 CHANGELOG.md 文件时需包含以下内容:
- 新功能列表。
- 已知问题。
- 修复内容。
- 升级注意事项。
文档编写
项目文档包括:
- 使用手册(中文)。
- 开发指南。
- API 文档。
- 设计文档。
📄 许可证
本项目遵循 MIT 许可证,具体内容请参考 LICENSE 文件。
如需更多信息,请访问项目主页或查阅相关文档。
微信扫一扫