Débutant / Faire fonctionné prog + erreur ...
Gecko59146
-
jee pee Messages postés 9458 Date d'inscription Statut Modérateur Dernière intervention -
jee pee Messages postés 9458 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Je suis débutant en python , et j'ai trouvé intéressant un programme que j'ai trouvé sur internet . Mais , je n'arrive pas a le faire fonctionné , de plus j'ai l'impression qu'il comporte des erreurs ... Le but du programme : c'est un jeu entre 2 joueurs , ils mettent pseudo et on des vies . Le but étant de trouver un nombre aléatoire entre 1 et 100 choisis par la calculatrice qui dit moins on plus et le nombres de vie pour chaque joueur .
Pourriez-vous m'aider ?
Merci par avance
Je suis débutant en python , et j'ai trouvé intéressant un programme que j'ai trouvé sur internet . Mais , je n'arrive pas a le faire fonctionné , de plus j'ai l'impression qu'il comporte des erreurs ... Le but du programme : c'est un jeu entre 2 joueurs , ils mettent pseudo et on des vies . Le but étant de trouver un nombre aléatoire entre 1 et 100 choisis par la calculatrice qui dit moins on plus et le nombres de vie pour chaque joueur .
Pourriez-vous m'aider ?
import random
class joueurs :
def __init__(self, vies , pseudo):
self.vies = vies
self.pseudo = pseudo
def jouer(self):
appreciation = "?"
n = (0,100)
while self.vies >0:
message = appreciation +" -- " + self.pseudo + ":" + str(self.vies) + "vies restantes. Nombre choisi: "
var = input(message)
var = int(vars)
if var < n :
appreciation = "trop bas"
print(vies, var, appreciation)
else :
appreciation = "trop haut"
print(vies, var , appreciation)
if var == n:
appreciation = "bravo !"
print(vies , var , appreciation)
break
self.vies -=1
# Initialisation des deux joueurs
j1 = joueurs(10, "joueur 1")
j2 = joueurs(10, "joueur 2")
# j1 et j2 jouent
j1.jouer()
j2.jouer()
# Nombre de vies restantes à chaque joueur
print("Nombre de vies restantes à chaque joueur")
print(j1.pseudo + ":" + str(j1.vies) + "restantes")
print(j2.pseudo + ":" + str(j2.vies) + "restantes")
# Résultat de la partie
print("Résultat de la partie")
if j1.vies < j2.vies :
print(j1.pseudo + "a gagné la partie")
elif j1.vies == j2.vies :
print("match ,nul")
else: print(j2.pseudo + "a gagné la partie")
Merci par avance
| EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
2 réponses
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour,
si tu veux progresser, je pense préférable de commencer par des programmes plus simples. -
Salut !
Alors oui y'a des erreurs... Et oui effectivement si tu débutes en Python... Commencé par quelques choses avec des classes c'est pas fou comme idée.
Si tu veux quand même corriger le code...
-Des noms de variables sont erronées (exemple : vies au lieu de self.vies, vars au lieu de var...)
-Le nombre généré aléatoirement.. Bah c'est pas un nombre mais c'est un tuple et c'est pas aléatoire...
Si tu veux quand même une version corrigée, je te laisse comparer la tienne et celle-ci :import random class Joueurs: def __init__(self, vies, pseudo): self.vies = vies self.pseudo = pseudo def jouer(self): appreciation = "?" n = random.randint(0, 100) print(n) while self.vies > 0: message = appreciation + " -- " + self.pseudo + ":" + str(self.vies) + "vies restantes. Nombre choisi: " var = input(message) var = int(var) if var < n: appreciation = "trop bas" print(self.vies, var, appreciation) else: appreciation = "trop haut" print(self.vies, var, appreciation) if var == n: appreciation = "bravo !" print(self.vies, var, appreciation) break self.vies -= 1 # Initialisation des deux joueurs j1 = Joueurs(10, "joueur 1") j2 = Joueurs(10, "joueur 2") # j1 et j2 jouent j1.jouer() j2.jouer() # Nombre de vies restantes à chaque joueur print("Nombre de vies restantes à chaque joueur") print(j1.pseudo + ":" + str(j1.vies) + "restantes") print(j2.pseudo + ":" + str(j2.vies) + "restantes") # Résultat de la partie print("Résultat de la partie") if j1.vies < j2.vies: print(j1.pseudo + "a gagné la partie") elif j1.vies == j2.vies: print("match ,nul") else: print(j2.pseudo + "a gagné la partie")
Je suis normalement pas fan de commenter un poste pour dire à quelqu'un "laisse c'est trop dur" comme c'est un forum d'entre-aide... Mais je devais te le dire quand même !
Bon courage !
-
salut,
je rajouterais il faudrait mettre le testif var == n
avant leif var < n
puisque l'égalité est aussi comprise dans leelse
.- Exacte, sinon le else est aussi pris en compte... Merci beaucoup ! Ca m'apprendra à vouloir corriger sans tester !
if var < n: appreciation = "trop bas" print(self.vies, var, appreciation) else: appreciation = "trop haut" print(self.vies, var, appreciation) if var == n: appreciation = "bravo !" print(self.vies, var, appreciation) break
à changer en :if var < n: appreciation = "trop bas" print(self.vies, var, appreciation) elif var == n: appreciation = "bravo !" print(self.vies, var, appreciation) break else: appreciation = "trop haut" print(self.vies, var, appreciation)
Encore désolé pour l'erreur !
-