tar / accessory.py
CC2311's picture
Update accessory.py
635409e verified
raw
history blame
2.6 kB
import pandas as pd
# 이름, 레벨, hp%, atk%, def% (표 수치를 그대로 적기)
TABLE = [
# 수치 0짜리 옵션 (크발)
("크발", 0, 0, 0, 0),
# 수치 5짜리 옵션 (공격력 +5%)
("빛뿔공", 5, 0, 5, 0),
# 수치 8짜리 옵션 (공격력 +8%)
("빛뿔공", 8, 0, 8, 0),
("악보",16,16,0,0), ("황보",16,0,16,0), ("여보",16,0,0,16),
("대뿔(방/체)",16,6,0,10), ("대뿔(방/공)",16,0,6,10),
("물뿔(체/공)",16,10,6,0), ("물뿔(체/방)",16,10,0,6),
("불뿔(공/방)",16,0,10,6), ("불뿔(공/체)",16,6,10,0),
("바뿔(공/체)",16,8,8,0), ("바뿔(체/방)",16,8,0,8), ("바뿔(공/방)",16,0,8,8),
("악보",17,17,0,0), ("황보",17,0,17,0), ("여보",17,0,0,17),
("대뿔(방/체)",17,6,0,11), ("대뿔(방/공)",17,0,6,11),
("물뿔(체/공)",17,11,6,0), ("물뿔(체/방)",17,11,0,6),
("불뿔(공/방)",17,0,11,6), ("불뿔(공/체)",17,6,11,0),
("바뿔(공/체)",17,9,8,0), ("바뿔(체/방)",17,9,0,8), ("바뿔(공/방)",17,0,9,8),
("악보",18,18,0,0), ("황보",18,0,18,0), ("여보",18,0,0,18),
("대뿔(방/체)",18,6,0,12), ("대뿔(방/공)",18,0,6,12),
("물뿔(체/공)",18,12,6,0), ("물뿔(체/방)",18,12,0,6),
("불뿔(공/방)",18,0,12,6), ("불뿔(공/체)",18,6,12,0),
("바뿔(공/체)",18,9,9,0), ("바뿔(체/방)",18,9,0,9), ("바뿔(공/방)",18,0,9,9),
("악보",19,19,0,0), ("황보",19,0,19,0), ("여보",19,0,0,19),
("대뿔(방/체)",19,6,0,13), ("대뿔(방/공)",19,0,6,13),
("물뿔(체/공)",19,13,6,0), ("물뿔(체/방)",19,13,0,6),
("불뿔(공/방)",19,0,13,6), ("불뿔(공/체)",19,6,13,0),
("바뿔(공/체)",19,9,10,0), ("바뿔(체/방)",19,10,0,9), ("바뿔(공/방)",19,0,10,9),
("악보",20,20,0,0), ("황보",20,0,20,0), ("여보",20,0,0,20),
("바뿔(공/체)",20,10,10,0), ("바뿔(체/공)",20,10,10,0),
("바뿔(공/방)",20,0,10,10),
]
df_acc = pd.DataFrame(TABLE, columns=["이름","lv","hp%","atk%","def%"])
def optimize_accessory(hp:int, atk:int, df:int, lv:int)->dict:
cand = df_acc[df_acc["lv"] == lv]
best = {"name":None,"HP":hp,"ATK":atk,"DEF":df,"bibel":hp*atk*df}
for _,row in cand.iterrows():
nh=int(hp*(1+row["hp%"]/100))
na=int(atk*(1+row["atk%"]/100))
nd=int(df*(1+row["def%"]/100))
b=nh*na*nd
if b>best["bibel"]:
best={"name":f'{row["이름"]}{lv}',
"HP":nh,"ATK":na,"DEF":nd,"bibel":b,
"pct":{"hp":row["hp%"]/100,"atk":row["atk%"]/100,"def":row["def%"]/100}}
return best