使用说明
口袋妖怪战斗模拟器和MCP服务器
这个项目是一个功能齐全的口袋妖怪战斗模拟器和数据服务器。它使用a 模型上下文协议(MCP) 兼容的FastAPI后端,提供全面的口袋妖怪数据和强大的战斗引擎。用户界面是一个使用Streamlit构建的交互式多页web应用程序。
⭐ 特性
- 交互式战斗模拟器: 一个功能齐全的用户界面,可以选择《口袋妖怪》,并通过视觉反馈观看逐回合战斗的展开。
- 多种作战模式: 支持 一对一, 随机,战略 3v3团队 战斗。
- 先进战斗引擎: 实现Pokemon的核心机制,包括:
- 类型有效性和损伤计算
- 基于速度统计的转弯顺序
- 5+状态效果(中毒、烧伤、瘫痪、睡眠、意识模糊)
- AI移动选择(选择超高效或高功率移动)
- 全功能Pokédex: 一个可搜索的页面,可以查看898多只宝可梦的详细数据、统计数据和官方艺术品。
- 战略举措建议: 一种分析匹配并为攻击者推荐最佳策略的工具。
- 自定义口袋妖怪支持: 包括三个自定义口袋妖怪(Scopely,EA体育和Zynga)具有独特的统计数据、能力和本地图像支持。
- 高性能缓存: 与Redis集成缓存API调用,确保快速流畅的用户体验。
🛠️ 技术栈
🚀 本地设置和运行说明
该项目旨在本地运行。
1.先决条件
- Python 3.9+
- 正在运行的Redis服务器。
2.安装
在终端中,导航到项目的根文件夹并运行以下命令:
# Create and activate a Python virtual environment
python -m venv venv
# On Windows:
# .\venv\Scripts\activate
# On macOS/Linux:
# source venv/bin/activate
# Install all required dependencies
pip install -r requirements.txt
3.运行应用程序
您需要在项目的根文件夹中运行两个单独的终端。
终端1:启动后端MCP服务器
# Make sure your virtual environment is active
uvicorn app.main:app --reload --port 8000
API服务器将在 http://127.0.0.1:8000互动文档可在以下网址找到: http://127.0.0.1:8000/docs.
终端2:启动前端Streamlit应用程序
# Make sure your virtual environment is active
streamlit run Battle_Simulator.py
应用程序将在您的web浏览器中打开。
💡 未来发展
- 全集装箱化: 使用容器化应用程序
docker-compose简化部署并增强可扩展性。 - 团队分析工具: 一个新的页面,分析了一个由六个口袋妖怪组成的团队,并提供了一份关于其整体类型优缺点的战略报告。
- 持久的战斗历史: 将战斗日志结果保存到一个简单的数据库(如SQLite)中,以创建过去比赛的持久历史记录。
⚙️ MCP API使用示例
可以使用任何API客户端直接查询服务器。这是一个为Snorlax获取数据的示例。
查询示例
curl -X POST -H "Content-Type: application/json" \
-d '{"resource": "pokemon_data", "action": "get", "params": {"name": "snorlax"}}' \
[http://127.0.0.1:8000/mcp](http://127.0.0.1:8000/mcp)
示例响应
{
"id": 143,
"name": "Snorlax",
"stats": { "hp": 160, "attack": 110, "defense": 65, "special-attack": 65, "special-defense": 110, "speed": 30 },
"types": [ "normal" ],
"abilities": [ "immunity", "thick-fat", "gluttony" ],
"moves": [ { "name": "mega-punch", "power": 80, "type": "normal" } ],
"evolution_chain": [ "munchlax", "snorlax" ]
}