自定义配置文件生成
This commit is contained in:
parent
9ea4c5d4d5
commit
078fadb033
@ -2,36 +2,126 @@
|
||||
|
||||
# 基础权重配置
|
||||
base_weights:
|
||||
synergy_level_weight: 1.0 # 羁绊等级权重
|
||||
synergy_count_weight: 0.5 # 羁绊种类数量权重
|
||||
chess_cost_weight: 0.1 # 棋子费用权重
|
||||
synergy_level_weight: 1.0
|
||||
synergy_count_weight: 0.5
|
||||
chess_cost_weight: 0.1
|
||||
|
||||
# 羁绊权重配置(值越大,该羁绊在评分中的权重越高)
|
||||
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.2
|
||||
神谕者: 1.3
|
||||
斗士: 1.1
|
||||
刺客: 1.4
|
||||
狙神: 1.6
|
||||
守护者: 1.3
|
||||
高级工程师: 1.5
|
||||
|
||||
# 特质羁绊
|
||||
星神: 1.4
|
||||
耀光使: 1.3
|
||||
海克斯科技: 1.5
|
||||
赏金猎人: 1.2
|
||||
未来战士: 1.3
|
||||
圣灵使者: 1.5
|
||||
幻灵战队: 1.4
|
||||
弑魂者: 1.6
|
||||
战地机甲: 1.2
|
||||
执事: 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:
|
||||
亚索: 1.5
|
||||
艾希: 1.2
|
||||
璐璐: 1.3
|
||||
金克斯: 1.4
|
||||
薇恩: 1.3
|
||||
赛娜: 1.4
|
||||
塔姆: 1.2
|
||||
纳尔: 1.3
|
||||
塞拉斯: 1.2
|
||||
R-080T: 0.8
|
||||
T-43X: 0.8
|
||||
T-URR37: 0.8
|
||||
乐芙兰: 1.1
|
||||
伊莉丝: 1.2
|
||||
佛耶戈: 1.7
|
||||
俄洛伊: 1.1
|
||||
克格莫: 1.0
|
||||
加里奥: 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