bonjour,
tout nouveau en programmation, j ai quelques difficultés avec la gestion/manipulation de liste
j ai une liste "score_trie" comme ceci,
score_trie = [[3, 1], [8, 3], ,[15, 6], [24, 5], [24, 2], [51, 4], [51, 0]]
le premier élément contient le score temporaire du joueur
le deuxième élément contient l index du joueur
je souhaite créer une nouvelle liste pour
attribuer 2 points au score du joueur ayant le plus gros score temporaire (ici, 2 joueurs gagneront 2 points car ils sont à égalité (51 points))
attribuer 1 point au score du joueur ayant le 2eme meilleur score temporaire (ici, 2 joueurs gagneront 1 point car ils sont à égalité (24 points))
attribuer 0 points au score des autres joueurs
ce qui donnerait
score_fixe = [[2, 0], [2, 4], [1, 5], [1, 2], [0, 6], [0, 3], [0, 1]]
le premier élément correspond aux points final
le deuxième élément correspond a l index du joueur
je parviens a créer une nouvelle liste "score_fixe" comme ceci
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
| score_trie = [[3, 1], [8, 3], [24, 5], [24, 2], [51, 4], [51, 0]]
liste = []
for x in range(len(score_trie)) :
liste.append(score_trie[-1])
score_trie.pop()
print(liste)
for k, v in enumerate(liste):
if k == 0 :
v[0] = 2
if k == 1 :
v[0] = 1
if k == 2 :
v[0] = 0
if k == 3 :
v[0] = 0
if k == 4 :
v[0] = 0
if k == 5 :
v[0] = 0
print(liste) |
voici le résultat de mon code
[[2, 0], [1, 4], [0, 2], [0, 5], [0, 3], [0, 1]]
Sa fonctionne en l'état mais si il y a une égalité, ce n est pas bon
en fait, et la est mon problème, je ne vois pas comment je pourrais comparer les valeurs et attribuer 2 points a chaque joueur ayant le meilleur score et de même pour le 2eme meilleur score en cas d égalité
merci pour votre aide
Partager