7.9 KiB
7.9 KiB
我准备编写一个云顶之弈阵容推荐器,所有推荐都基于官方api接口获取的数据,数据包括三个文件:job、race、chess,分别代表职业、特质、棋子,数据内容如下(只截取部分):
job:
{
"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:
{
"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:
{
"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文档指导整个项目的开发,因此,需要尽可能详细设计