云顶之弈阵容推荐器
项目概述
本项目是一个基于Python的云顶之弈阵容推荐工具,通过Riot官方提供的游戏数据(职业、特质、棋子),实现自动化的阵容分析与推荐。项目具有灵活的评分机制,能够根据用户需求(如指定人口、羁绊、棋子等)智能推荐最优阵容。
主要功能
-
数据提供模块
- 从官方接口获取最新游戏数据并支持本地缓存
- 提供丰富的数据查询API,如获取羁绊下的棋子、棋子的羁绊详情等
- 高效的数据处理与缓存机制
-
阵容推荐模块 (开发中)
- 根据用户指定的人口、必须羁绊、必选棋子自动生成阵容
- 支持多种约束条件组合,如指定多个羁绊、多个棋子等
-
阵容评分模块 (开发中)
- 综合考虑羁绊数量、等级、棋子费用等因素
- 可配置的评分权重,支持自定义评分策略
-
接口模块 (开发中)
- 提供编程接口,方便集成到其他应用中
- 命令行界面,便于直接使用
环境与依赖
- Python版本: Python 3.8+
- 主要依赖:
- requests: 用于获取在线数据
- pandas: 用于数据处理
- pyyaml: 用于配置文件解析
- pytest: 用于单元测试
项目安装
- 克隆项目代码
git clone https://github.com/username/TFT-Strategist.git
cd TFT-Strategist
- 安装依赖
pip install -r requirements.txt
快速开始
数据提供模块演示
运行以下命令启动数据提供模块的演示程序:
python main.py data
演示程序将展示以下功能:
- 加载最新的游戏数据
- 显示当前版本职业、特质和棋子的基本信息
- 提供交互式查询界面,可以查询羁绊的棋子、棋子的羁绊等信息
项目结构
TFT-Strategist/
├── data/ # 数据存储目录
│ ├── chess.json # 棋子数据
│ ├── job.json # 职业数据
│ └── race.json # 特质数据
├── src/ # 源代码
│ ├── data_provider/ # 数据提供模块
│ │ ├── __init__.py
│ │ ├── data_loader.py # 数据加载器
│ │ └── data_query_api.py # 数据查询API
│ ├── recommendation/ # 阵容推荐模块 (开发中)
│ ├── scoring/ # 阵容评分模块 (开发中)
│ ├── interface/ # 接口模块 (开发中)
│ ├── __init__.py
│ └── data_provider_demo.py # 数据提供模块演示
├── tests/ # 测试代码
│ └── test_data_provider.py # 数据提供模块测试
├── config/ # 配置文件目录
├── main.py # 主程序入口
├── requirements.txt # 项目依赖
└── README.md # 项目文档
数据提供模块详解
数据提供模块是整个阵容推荐系统的基础,负责从官方接口获取最新的游戏数据,并提供丰富的查询功能。
主要组件
-
DataLoader: 负责数据获取与缓存
- 支持从本地或网络加载数据
- 实现数据缓存机制,避免频繁请求
- 自动处理数据更新
-
DataQueryAPI: 提供丰富的数据查询接口
- 获取所有职业/特质/棋子数据
- 根据ID或名称查询具体数据
- 查询羁绊下的棋子、棋子的羁绊
- 获取羁绊等级信息
- 查询棋子费用分布
使用示例
from src.data_provider import DataQueryAPI
# 初始化API
api = DataQueryAPI()
# 获取所有职业
jobs = api.get_all_jobs()
# 查询特定羁绊的棋子
heavy_warrior = api.get_job_by_name("重装战士")
if heavy_warrior:
chess_list = api.get_chess_by_job(heavy_warrior['jobId'])
print(f"重装战士棋子: {[chess['displayName'] for chess in chess_list]}")
# 查询棋子的羁绊
brand = api.get_chess_by_name("布兰德")
if brand:
synergies = api.get_synergies_of_chess(brand['chessId'])
print(f"布兰德的羁绊: {[synergy['name'] for synergy in synergies]}")
开发计划
- 数据提供模块
- 阵容推荐模块
- 阵容评分模块
- 接口模块
- 图形用户界面
贡献指南
欢迎贡献代码、报告问题或提出新功能建议!请先fork本仓库,然后提交拉取请求。
许可证
MIT
联系方式
如有任何问题或建议,请提交issue或联系项目维护者。
Description
Languages
Python
72.5%
JavaScript
19%
HTML
4.3%
CSS
4.2%