自定义配置文件生成
This commit is contained in:
parent
9ea4c5d4d5
commit
078fadb033
@ -2,36 +2,126 @@
|
|||||||
|
|
||||||
# 基础权重配置
|
# 基础权重配置
|
||||||
base_weights:
|
base_weights:
|
||||||
synergy_level_weight: 1.0 # 羁绊等级权重
|
synergy_level_weight: 1.0
|
||||||
synergy_count_weight: 0.5 # 羁绊种类数量权重
|
synergy_count_weight: 0.5
|
||||||
chess_cost_weight: 0.1 # 棋子费用权重
|
chess_cost_weight: 0.1
|
||||||
|
|
||||||
# 羁绊权重配置(值越大,该羁绊在评分中的权重越高)
|
# 羁绊权重配置(值越大,该羁绊在评分中的权重越高)
|
||||||
synergy_weights:
|
synergy_weights:
|
||||||
# 职业羁绊
|
# 职业羁绊
|
||||||
|
人造人: 1.4
|
||||||
|
召唤物: 0.7
|
||||||
|
堡垒卫士: 1.4
|
||||||
|
强袭射手: 1.4
|
||||||
|
战略分析师: 1.1
|
||||||
|
斗士: 1.5
|
||||||
|
杀手: 1.4
|
||||||
|
裁决使: 1.4
|
||||||
|
超频战士: 1.6
|
||||||
|
迅捷射手: 1.5
|
||||||
重装战士: 1.5
|
重装战士: 1.5
|
||||||
魔法师: 1.2
|
高级工程师: 1.5
|
||||||
神谕者: 1.3
|
|
||||||
斗士: 1.1
|
|
||||||
刺客: 1.4
|
|
||||||
狙神: 1.6
|
|
||||||
守护者: 1.3
|
|
||||||
|
|
||||||
# 特质羁绊
|
# 特质羁绊
|
||||||
星神: 1.4
|
圣灵使者: 1.5
|
||||||
耀光使: 1.3
|
幻灵战队: 1.4
|
||||||
海克斯科技: 1.5
|
弑魂者: 1.6
|
||||||
赏金猎人: 1.2
|
战地机甲: 1.2
|
||||||
未来战士: 1.3
|
执事: 1.3
|
||||||
|
源计划: 1.5
|
||||||
|
病毒魔人: 1.0
|
||||||
|
福牛守护者: 1.2
|
||||||
|
网络之神: 1.6
|
||||||
|
街头恶魔: 1.4
|
||||||
|
赛博老大: 1.3
|
||||||
|
辛迪加: 1.3
|
||||||
|
魔装机神: 1.1
|
||||||
|
鳄霸: 1.6
|
||||||
|
|
||||||
|
# 棋子费用等级权重(费用越高权重越大)
|
||||||
|
cost_weights:
|
||||||
|
'1': 1.0
|
||||||
|
'2': 1.2
|
||||||
|
'3': 1.5
|
||||||
|
'4': 1.8
|
||||||
|
'5': 2.0
|
||||||
|
|
||||||
# 棋子权重配置(值越大,该棋子在评分中的权重越高)
|
# 棋子权重配置(值越大,该棋子在评分中的权重越高)
|
||||||
chess_weights:
|
chess_weights:
|
||||||
亚索: 1.5
|
R-080T: 0.8
|
||||||
艾希: 1.2
|
T-43X: 0.8
|
||||||
璐璐: 1.3
|
T-URR37: 0.8
|
||||||
金克斯: 1.4
|
乐芙兰: 1.1
|
||||||
薇恩: 1.3
|
伊莉丝: 1.2
|
||||||
赛娜: 1.4
|
佛耶戈: 1.7
|
||||||
塔姆: 1.2
|
俄洛伊: 1.1
|
||||||
纳尔: 1.3
|
克格莫: 1.0
|
||||||
塞拉斯: 1.2
|
加里奥: 1.2
|
||||||
|
劫: 1.3
|
||||||
|
千珏: 1.0
|
||||||
|
厄加特: 1.4
|
||||||
|
厄斐琉斯: 1.3
|
||||||
|
厄运小姐: 1.3
|
||||||
|
古拉加斯: 1.2
|
||||||
|
可酷伯: 1.4
|
||||||
|
吉格斯: 1.3
|
||||||
|
嘉文四世: 1.2
|
||||||
|
塞拉斯: 1.0
|
||||||
|
奈德丽: 1.0
|
||||||
|
妮蔻: 1.3
|
||||||
|
婕拉: 1.0
|
||||||
|
安妮: 1.3
|
||||||
|
崔斯特: 1.1
|
||||||
|
布兰德: 1.5
|
||||||
|
布隆: 1.2
|
||||||
|
希瓦娜: 1.1
|
||||||
|
德莱厄斯: 1.1
|
||||||
|
德莱文: 1.2
|
||||||
|
悠米: 1.2
|
||||||
|
扎克: 1.7
|
||||||
|
拉亚斯特: 1.1
|
||||||
|
斯卡纳: 1.1
|
||||||
|
格雷福斯: 1.1
|
||||||
|
波比: 1.0
|
||||||
|
泽丽: 1.3
|
||||||
|
烬: 1.1
|
||||||
|
瑟庄妮: 1.3
|
||||||
|
盖伦: 1.7
|
||||||
|
科加斯: 1.3
|
||||||
|
纳亚菲利: 1.1
|
||||||
|
维迦: 1.1
|
||||||
|
艾克: 1.1
|
||||||
|
莎弥拉: 1.4
|
||||||
|
莫德凯撒: 1.2
|
||||||
|
莫甘娜: 1.0
|
||||||
|
萨勒芬妮: 1.0
|
||||||
|
萨科: 1.0
|
||||||
|
蒙多医生: 1.0
|
||||||
|
蔚: 1.0
|
||||||
|
蕾欧娜: 1.3
|
||||||
|
薇古丝: 1.3
|
||||||
|
薇恩: 1.5
|
||||||
|
费德提克: 1.2
|
||||||
|
贾克斯: 1.0
|
||||||
|
赛娜: 1.5
|
||||||
|
金克丝: 1.5
|
||||||
|
阿利斯塔: 1.0
|
||||||
|
阿萝拉: 1.7
|
||||||
|
雷克顿: 1.4
|
||||||
|
雷恩加尔: 1.2
|
||||||
|
霞: 1.3
|
||||||
|
韦鲁斯: 1.2
|
||||||
|
魔像: 0.8
|
||||||
|
|
||||||
|
# 羁绊等级权重(不同等级的羁绊权重不同)
|
||||||
|
synergy_level_weights:
|
||||||
|
'1': 1.0
|
||||||
|
'2': 1.2
|
||||||
|
'3': 1.5
|
||||||
|
'4': 1.8
|
||||||
|
'5': 2.0
|
||||||
|
'6': 2.3
|
||||||
|
'7': 2.6
|
||||||
|
'8': 3.0
|
||||||
|
'9': 3.3
|
||||||
|
'10': 3.5
|
||||||
|
133
generate_weights_config.py
Normal file
133
generate_weights_config.py
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
"""
|
||||||
|
生成完整的weights_config.yaml配置文件
|
||||||
|
"""
|
||||||
|
from src.data_provider import DataQueryAPI
|
||||||
|
import yaml
|
||||||
|
import random
|
||||||
|
|
||||||
|
def generate_weights_config():
|
||||||
|
"""生成完整的权重配置文件"""
|
||||||
|
api = DataQueryAPI()
|
||||||
|
|
||||||
|
# 获取所有数据
|
||||||
|
jobs = api.get_all_jobs()
|
||||||
|
races = api.get_all_races()
|
||||||
|
chess = api.get_all_chess()
|
||||||
|
|
||||||
|
# 生成配置字典
|
||||||
|
config = {
|
||||||
|
"base_weights": {
|
||||||
|
"synergy_level_weight": 1.0,
|
||||||
|
"synergy_count_weight": 0.5,
|
||||||
|
"chess_cost_weight": 0.1
|
||||||
|
},
|
||||||
|
"synergy_weights": {},
|
||||||
|
"chess_weights": {},
|
||||||
|
"cost_weights": {
|
||||||
|
"1": 1.0,
|
||||||
|
"2": 1.2,
|
||||||
|
"3": 1.5,
|
||||||
|
"4": 1.8,
|
||||||
|
"5": 2.0
|
||||||
|
},
|
||||||
|
"synergy_level_weights": {
|
||||||
|
"1": 1.0,
|
||||||
|
"2": 1.2,
|
||||||
|
"3": 1.5,
|
||||||
|
"4": 1.8,
|
||||||
|
"5": 2.0,
|
||||||
|
"6": 2.3,
|
||||||
|
"7": 2.6,
|
||||||
|
"8": 3.0,
|
||||||
|
"9": 3.3,
|
||||||
|
"10": 3.5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# 添加职业羁绊权重
|
||||||
|
for job in jobs:
|
||||||
|
# 根据职业类型设置不同的基础权重
|
||||||
|
base_weight = round(random.uniform(1.0, 1.6), 1)
|
||||||
|
# 对于一些特殊职业进行调整
|
||||||
|
if job['name'] == '召唤物':
|
||||||
|
base_weight = 0.7
|
||||||
|
elif job['name'] in ['重装战士', '高级工程师', '斗士']:
|
||||||
|
base_weight = 1.5
|
||||||
|
elif job['name'] in ['堡垒卫士', '强袭射手']:
|
||||||
|
base_weight = 1.4
|
||||||
|
|
||||||
|
config["synergy_weights"][job['name']] = base_weight
|
||||||
|
|
||||||
|
# 添加特质羁绊权重
|
||||||
|
for race in races:
|
||||||
|
# 根据特质类型设置不同的基础权重
|
||||||
|
base_weight = round(random.uniform(1.0, 1.6), 1)
|
||||||
|
# 对于一些特殊特质进行调整
|
||||||
|
if race['name'] in ['弑魂者', '网络之神', '鳄霸']:
|
||||||
|
base_weight = 1.6
|
||||||
|
elif race['name'] in ['圣灵使者', '源计划']:
|
||||||
|
base_weight = 1.5
|
||||||
|
|
||||||
|
config["synergy_weights"][race['name']] = base_weight
|
||||||
|
|
||||||
|
# 添加棋子权重
|
||||||
|
for c in chess:
|
||||||
|
if c.get('price') == '0':
|
||||||
|
# 召唤物权重较低
|
||||||
|
config["chess_weights"][c['displayName']] = 0.8
|
||||||
|
else:
|
||||||
|
# 根据费用调整权重基础值
|
||||||
|
cost = int(c.get('price', '1'))
|
||||||
|
base_weight = 1.0 + (cost - 1) * 0.1
|
||||||
|
# 对于一些特殊棋子进行调整
|
||||||
|
if c['displayName'] in ['佛耶戈', '扎克', '盖伦', '阿萝拉']:
|
||||||
|
base_weight = 1.7
|
||||||
|
elif c['displayName'] in ['薇恩', '赛娜', '金克丝', '布兰德']:
|
||||||
|
base_weight = 1.5
|
||||||
|
|
||||||
|
config["chess_weights"][c['displayName']] = round(base_weight, 1)
|
||||||
|
|
||||||
|
# 将配置写入YAML文件
|
||||||
|
with open('data/weights_config.yaml', 'w', encoding='utf-8') as f:
|
||||||
|
# 添加注释
|
||||||
|
f.write("# 云顶之弈阵容评分权重配置文件\n\n")
|
||||||
|
|
||||||
|
# 写入基础权重配置
|
||||||
|
f.write("# 基础权重配置\n")
|
||||||
|
yaml.dump({"base_weights": config["base_weights"]}, f, allow_unicode=True, sort_keys=False)
|
||||||
|
|
||||||
|
# 写入羁绊权重配置
|
||||||
|
f.write("\n# 羁绊权重配置(值越大,该羁绊在评分中的权重越高)\n")
|
||||||
|
f.write("synergy_weights:\n")
|
||||||
|
|
||||||
|
# 先写入职业羁绊
|
||||||
|
f.write(" # 职业羁绊\n")
|
||||||
|
for job in sorted(jobs, key=lambda x: x['name']):
|
||||||
|
f.write(f" {job['name']}: {config['synergy_weights'][job['name']]}\n")
|
||||||
|
|
||||||
|
# 再写入特质羁绊
|
||||||
|
f.write("\n # 特质羁绊\n")
|
||||||
|
for race in sorted(races, key=lambda x: x['name']):
|
||||||
|
f.write(f" {race['name']}: {config['synergy_weights'][race['name']]}\n")
|
||||||
|
|
||||||
|
# 写入棋子费用等级权重
|
||||||
|
f.write("\n# 棋子费用等级权重(费用越高权重越大)\n")
|
||||||
|
yaml.dump({"cost_weights": config["cost_weights"]}, f, allow_unicode=True, sort_keys=False)
|
||||||
|
|
||||||
|
# 写入棋子权重配置
|
||||||
|
f.write("\n# 棋子权重配置(值越大,该棋子在评分中的权重越高)\n")
|
||||||
|
f.write("chess_weights:\n")
|
||||||
|
for c_name, c_weight in sorted(config["chess_weights"].items()):
|
||||||
|
f.write(f" {c_name}: {c_weight}\n")
|
||||||
|
|
||||||
|
# 写入羁绊等级权重
|
||||||
|
f.write("\n# 羁绊等级权重(不同等级的羁绊权重不同)\n")
|
||||||
|
yaml.dump({"synergy_level_weights": config["synergy_level_weights"]}, f, allow_unicode=True, sort_keys=False)
|
||||||
|
|
||||||
|
print(f"已生成权重配置文件: data/weights_config.yaml")
|
||||||
|
print(f"职业羁绊: {len(jobs)}个")
|
||||||
|
print(f"特质羁绊: {len(races)}个")
|
||||||
|
print(f"棋子: {len(chess)}个")
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
generate_weights_config()
|
33
get_data.py
Normal file
33
get_data.py
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
"""
|
||||||
|
获取TFT数据脚本
|
||||||
|
"""
|
||||||
|
from src.data_provider import DataQueryAPI
|
||||||
|
|
||||||
|
def main():
|
||||||
|
"""获取所有棋子和羁绊数据"""
|
||||||
|
api = DataQueryAPI()
|
||||||
|
|
||||||
|
# 获取所有数据
|
||||||
|
jobs = api.get_all_jobs()
|
||||||
|
races = api.get_all_races()
|
||||||
|
chess = api.get_all_chess()
|
||||||
|
|
||||||
|
print(f'职业数量: {len(jobs)}')
|
||||||
|
print(f'特质数量: {len(races)}')
|
||||||
|
print(f'棋子数量: {len(chess)}')
|
||||||
|
|
||||||
|
print('\n职业列表:')
|
||||||
|
for job in sorted(jobs, key=lambda x: x['name']):
|
||||||
|
print(f'- {job["name"]}')
|
||||||
|
|
||||||
|
print('\n特质列表:')
|
||||||
|
for race in sorted(races, key=lambda x: x['name']):
|
||||||
|
print(f'- {race["name"]}')
|
||||||
|
|
||||||
|
print('\n棋子列表:')
|
||||||
|
for c in sorted(chess, key=lambda x: x['displayName']):
|
||||||
|
if c.get('price') != '0': # 排除费用为0的召唤物
|
||||||
|
print(f'- {c["displayName"]} ({c["price"]}费)')
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
Loading…
x
Reference in New Issue
Block a user