0
votes

Comment itérer avec une plage en utilisant itertools?

Considérant la liste suivante à l'intérieur de 4 tuples: xxx

Les joueurs jouent 7 jeux. Dans le premier match, Joe a gagné avec 100 points.

Je voudrais marquer chaque joueur (de chaque jeu) selon les éléments suivants: xxx

Mon code jusqu'à présent: xxx

Donc, mon code s'applique -1 points au quatrième joueur de chaque match, mais je veux que le quatrième joueur gagne juste 0 zéro points. J'ai du mal à appliquer une gamme ([0: 3]) ou une autre méthode permettant de sauter le quatrième joueur d'obtenir un score parce que ce joueur gagne juste 0 points.


1 commentaires

Quel devrait être le résultat s'il y a une cravate entre deux joueurs ou plus dans un tour?


4 Réponses :


0
votes

Vous pouvez modifier votre fonction de notation:

tmp.append(5-2*j.index(i) if 5-2*j.index(i) > 0 else 0)


0 commentaires

0
votes

Une solution très simple xxx

Cela garantira qu'aucun joueur ne gagne des points négatifs.


0 commentaires

0
votes

Utiliser max (0, x) pour vous assurer que la valeur est au moins 0 : xxx


0 commentaires

0
votes

Je vais mettre cela en place un peu différemment. Cela étant dit, il y a plus d'une façon de le faire. La première chose que je ferais est de tourner que lecteurs_score dans une collection plus jolie, comme un dictionnaire - il est donc plus amusant de travailler avec.

Fondamentalement, nous parcourons nos "rondes" (le Jeux) et triez les noms de joueurs basés sur leur score dans le tour actuel (le gagnant du tour actuel vient en premier). Ensuite, nous ZIP Les noms de lecteur triés avec la récompense respective (score) qu'ils méritent et mettent à jour notre collection collections.Counter , à l'aide du nom du lecteur comme clé. xxx

sortie: xxx


1 commentaires

Je conviens que votre code est plus facile à comprendre. Je l'ai modifié pour mettre les scores dans un dictionnaire.