1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| #Déclaration des fonctions
def somme(list_of_name, key):
som=sum([seq[name][key] for name in list_of_name])
return som
def comb(m, lst):
if m == 0: return [[]]
return [[x] + suffix for i, x in enumerate(lst)
for suffix in comb(m - 1, lst[i + 1:])]
# Déclaration des valeurs de reliques et de la base
Relique1= {'Santé':5,'Degats':6,'Armure':2,'Perforation':7,'Critique':2,
}
Relique2= {'Santé':10,'Degats':9,'Armure':3,'Perforation':1,'Critique':4,
}
Relique3= {'Santé':7,'Degats':17,'Armure':4,'Perforation':6,'Critique':6,
}
Base= {'Santé':0,'Degats':0,'Armure':0,'Perforation':0,'Critique':0,
}
seq={"Relique1":Relique1, "Relique2":Relique2,"Relique3":Relique3}
for i in seq:
names=list(seq)
#Calcul des combinaisons possibes
combinaisons = comb(2, names)
#calcul des valeurs des différentes combinaisons de reliques
totaux = { key: [ somme(c,key) for c in combinaisons ] for key in ("Santé","Degats","Armure","Perforation","Critique",
) }
#Ajout des valeurs de la Base aux résultats des combinaisons de reliques
final={}
for cle,valeurT in totaux.items():
newval=[]
for val in valeurT:
newval.append(val + Base.get(cle))
intermediaire={cle:newval}
final.update(intermediaire)
#Triage des résultats en fonction des combinaisons
resultat=sorted(zip( final.get("Santé"),final.get("Degats"),final.get("Armure"),final.get("Perforation"),final.get("Critique"),combinaisons) ,reverse=True)
#Mise en forme finale
for TS, TD, TA, TP, TC, v in resultat:
print('*******************',)
print("La combinaison",v,'\n',)
print("Santé=",TS,'\n',"Degats=",TD,'\n',"Armure=",TA,'\n',"Perforation=",TP,'\n',"Critique=",TC,'\n',) |
Partager