Un joueur apres l'autre ?

Messages postés
6
Date d'inscription
vendredi 4 octobre 2019
Statut
Membre
Dernière intervention
11 octobre 2019
- - Dernière réponse :  khrug - 11 oct. 2019 à 21:24
Bonjour, pour l'ecole je dois faire un "code" de type qualitatif sauf qu'il y a un truc que je n'arrive pas a faire. Nous devons faire jouer deux vrais joueurs tour par tour.
Je ne sais vraiment pas comment faire, en + je dois additionner les 2 scores, ce qui me semble complique' (je suis sur un claver qwerty donc pas d'accent, sorry)
Afficher la suite 

2 réponses

Messages postés
8685
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
11 octobre 2019
432
0
Merci
bonjour, peux-tu déjà montrer ce que tu as réalisé? quel est ton soucis? en quoi est-ce compliqué de faire la somme de deux scores?
Commenter la réponse de yg_be
0
Merci
Bonsoir.

Oui, il faudrait voir comment se présente ton code, mais au vu de ton souci, je pense que tu as plein de variables éparses dans ton code, comme joueur1, joueur2, score1, score2, etc.

C'est avec ce genre de problème qu'il faut penser à utiliser une structure de données, list, tuple, dict.

Pour gérer un système de tour, on se sert de l'opérateur modulo (le %) le nombre de joueurs et d'un itérable contenant par exemple des dict des attributs joueurs.

>>> import random
>>> joueurs = ({'nom':'Bart', 'score':0}, {'nom':'Lisa', 'score':0})
>>> tour = 0
>>> nombre_joueurs = len(joueurs)
>>> while True:
...     tour += 1
...     indice_joueur = tour % nombre_joueurs
...     joueurs[indice_joueur]['score'] += random.randint(1, 10)
...     if joueurs[indice_joueur]['score'] > 100:
...         print(joueurs[indice_joueur]['nom'], 'gagne')
...         break
... 
Bart gagne
>>> tour
32
>>> joueurs
({'nom': 'Bart', 'score': 102}, {'nom': 'Lisa', 'score': 96})
Commenter la réponse de khrug