Considérant la liste suivante à l'intérieur de 4 tuples: Les joueurs jouent 7 jeux. Dans le premier match, Joe a gagné avec 100 points. P> Je voudrais marquer chaque joueur (de chaque jeu) selon les éléments suivants: p> Mon code jusqu'à présent: p> 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. P> P>
4 Réponses :
Vous pouvez modifier votre fonction de notation:
tmp.append(5-2*j.index(i) if 5-2*j.index(i) > 0 else 0)
Une solution très simple Cela garantira qu'aucun joueur ne gagne des points négatifs. P> P>
Utiliser max (0, x) code> pour vous assurer que la valeur est au moins
0 code>:
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 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 sortie: p> lecteurs_score code> dans une collection plus jolie, comme un dictionnaire - il est donc plus amusant de travailler avec.
ZIP CODE> Les noms de lecteur triés avec la récompense respective (score) qu'ils méritent et mettent à jour notre collection
collections.Counter code>, à l'aide du nom du lecteur comme clé. P >
Je conviens que votre code est plus facile à comprendre. Je l'ai modifié pour mettre les scores dans un dictionnaire.
Quel devrait être le résultat s'il y a une cravate entre deux joueurs ou plus dans un tour?