TFT-Strategist/requirement.md
2025-04-02 09:08:25 +08:00

199 lines
7.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

我准备编写一个云顶之弈阵容推荐器所有推荐都基于官方api接口获取的数据数据包括三个文件job、race、chess分别代表职业、特质、棋子数据内容如下只截取部分
job
```json
{
"version": "15.7",
"season": "2025.S14",
"modeId": "1",
"time": "2025-04-01 14:31:07",
"data": [
{
"jobId": "10155",
"name": "超频战士",
"traitId": "10155",
"introduce": "【超频战士】们可以通过该羁绊专有的【超频】属性来给他们的技能提供独特增强。",
"alias": "10155.png",
"level": {
"2": "+1 【超频】属性, 100 生命值",
"3": "+2 【超频】属性, 200 生命值",
"4": "+3 【超频】属性, 350 生命值",
"5": "+4 【超频】属性, 500 生命值"
},
"TFTID": "10155",
"characterid": "TFT14_Supercharge",
"id": "2623",
"imagePath": "https://game.gtimg.cn/images/lol/act/img/tft/classes/10155.png",
"job_color_list": "2:1,3:2,4:3,5:3"
},
{
"jobId": "10157",
"name": "重装战士",
"traitId": "10157",
"introduce": "【重装战士】们在有护盾时获得10%伤害减免。\r\n战斗开始时和50%生命值时获得一部分最大生命值的护盾值持续10秒。",
"alias": "10157.png",
"level": {
"2": "16%最大生命值",
"4": "32%最大生命值",
"6": "40%最大生命值在有护盾时获得16% 伤害减免"
},
"TFTID": "10157",
"characterid": "TFT14_Vanguard",
"id": "2624",
"imagePath": "https://game.gtimg.cn/images/lol/act/img/tft/classes/10157.png",
"job_color_list": "2:1,4:2,6:3"
},
......
```
race:
```json
{
"version": "15.7",
"season": "2025.S14",
"modeId": "1",
"time": "2025-04-01 14:31:07",
"data": [
{
"raceId": "10153",
"name": "圣灵使者",
"traitId": "10153",
"introduce": "【圣灵使者】弈子会为你的小队提供独特的属性,该加成会随着已登场的【圣灵使者】弈子数量而提升。\r\n【圣灵使者】弈子们获得双倍。",
"alias": "10153.png",
"level": {
"1": "100% 加成。",
"2": "110% 加成。",
"3": "125% 加成。",
"4": "140% 加成。",
"5": "160% 加成。",
"6": "180% 加成。",
"7": "200% 加成。"
},
"TFTID": "10153",
"characterid": "TFT14_Divinicorp",
"id": "2727",
"imagePath": "https://game.gtimg.cn/images/lol/act/img/tft/origins/10153.png",
"race_color_list": "1:1,2:2,3:2,4:3,5:3,6:3,7:4"
},
{
"raceId": "10154",
"name": "街头恶魔",
"traitId": "10154",
"introduce": "在【彩绘格】中的友军将获得生命值、法术强度和攻击力。一些格子是【签名格】并多提供50%此加成。\r\n【街头恶魔】使所有此加成翻倍。",
"alias": "10154.png",
"level": {
"3": "+6% 生命值,6 法术强度,6% 攻击力",
"5": "+10% 生命值,10 法术强度,10% 攻击力",
"7": "+6% 生命值,15 法术强度,15% 攻击力",
"10": "+50% 生命值,50 法术强度,50% 攻击力,尽情绘画!"
},
"TFTID": "10154",
"characterid": "TFT14_StreetDemon",
"id": "2728",
"imagePath": "https://game.gtimg.cn/images/lol/act/img/tft/origins/10154.png",
"race_color_list": "3:1,5:2,7:3,10:4"
},
```
chess:
```json
{
"version": "15.7",
"season": "2025.S14",
"modeId": "1",
"time": "2025-04-01 14:31:08",
"data": [
{
"chessId": "10274",
"title": "",
"name": "10274.png",
"displayName": "魔像",
"raceIds": "",
"jobIds": "10178",
"price": "0",
"skillName": "魔像重击",
"skillType": "主动",
"skillImage": "https://game.gtimg.cn/images/lol/act/img/tft/champions/tft_bluegolem_spell.png",
"skillIntroduce": "猛击当前目标造成300/480/750 (AP)魔法伤害。",
"skillDetail": "猛击当前目标造成300/480/750 (AP)魔法伤害。",
"life": "600",
"magic": "100",
"startMagic": "30",
"armor": "40",
"spellBlock": "40",
"attackMag": "1.5",
"attack": "55",
"attackSpeed": "0.55",
"attackRange": "1",
"crit": "25",
"originalImage": "https://game.gtimg.cn/images/lol/act/img/tft/original-image/tft_bluegolem_spell.png",
"lifeMag": "1.8",
"TFTID": "10274",
"synergies": "",
"illustrate": "",
"recEquip": "",
"proStatus": "",
"hero_EN_name": "TFT_BlueGolem",
"id": "11710",
"races": "",
"jobs": "召唤物",
"attackData": "55/83/124",
"lifeData": "600/1080/1944"
},
{
"chessId": "10275",
"title": "",
"name": "10275.png",
"displayName": "布兰德",
"raceIds": "10154",
"jobIds": "10172",
"price": "4",
"skillName": "颜料炸弹",
"skillType": "主动",
"skillImage": "https://game.gtimg.cn/images/lol/act/img/tft/champions/tft14_brandpyroclasm.tft_set14.png",
"skillIntroduce": "向5格射程范围内敌人最密集的位置投掷一颗颜料炸弹对1格内的敌人们造成260/390/1500 (AP)魔法伤害并对相距最近的4名敌人造成100/150/600 (AP)魔法伤害。",
"skillDetail": "向5格射程范围内敌人最密集的位置投掷一颗颜料炸弹对1格内的敌人们造成260/390/1500 (AP)魔法伤害并对相距最近的4名敌人造成100/150/600 (AP)魔法伤害。",
"life": "800",
"magic": "75",
"startMagic": "25",
"armor": "30",
"spellBlock": "30",
"attackMag": "1.5",
"attack": "35",
"attackSpeed": "0.75",
"attackRange": "4",
"crit": "25",
"originalImage": "https://game.gtimg.cn/images/lol/act/img/tft/original-image/tft14_brandpyroclasm.tft_set14.png",
"lifeMag": "1.8",
"TFTID": "10275",
"synergies": "",
"illustrate": "",
"recEquip": "",
"proStatus": "",
"hero_EN_name": "TFT14_Brand",
"id": "11711",
"races": "街头恶魔",
"jobs": "高级工程师",
"attackData": "35/53/79",
"lifeData": "800/1440/2592"
},
```
我需要基于这三个数据进行分析,并根据限定好的羁绊(职业和特质的统称)和棋子生成合理的阵容,并尽可能推荐评分较高的阵容,因此项目需要设计以下模块:
* 数据提供模块从本地或在线接口获取羁绊和棋子数据并提供数据查询api通过api可以获取指定羁绊下的所有棋子、获取棋子的所有羁绊、获取所有羁绊列表、获取某个棋子的详细信息、获取某个羁绊的详细信息等可能会用到的数据查询相关接口。
* 阵容推荐模块:根据指定的阵容人数、羁绊、棋子搭配阵容,并使用评分系统计算阵容评分,找出评分最高的一组阵容后将阵容结果返回或输出
* 阵容评分模块:根据阵容中的羁绊和棋子的数据,综合计算阵容的评价得分,计算标准需要深度思考,对于羁绊和棋子的评分优先级,可以添加一个默认的权重,并根据配置文件中指定的权重对默认值进行覆盖,使用覆盖后的值进行强度计算,如果不指定,则使用默认值进行强度计算,阵容强度计算需要考虑多种因素,例如羁绊数量、羁绊总人数、棋子的费用、棋子的属性数据等
* 接口模块:可以接收外部传入的阵容推荐条件,例如指定人口、指定羁绊(一个或多个)、指定棋子(一个或多个),并调用其他模块进行阵容计算,最终返回给调用者
请根据以上需求帮我编写一份README.md文档整个项目使用python语言开发要求在需求基础上加入自己的深入思考并对细节或不合理的点进行调整和完善我后续将使用README.md文档指导整个项目的开发因此需要尽可能详细设计