Aditionnement de variable
Résolu
frères
Messages postés
49
Date d'inscription
Statut
Membre
Dernière intervention
-
nidhogg-59 Messages postés 102 Date d'inscription Statut Membre Dernière intervention -
nidhogg-59 Messages postés 102 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai récemment eu envie de faire un mini-jeu sur python avec des combats mais j'ai un problème lors du calcul des dégats :mon module
et on me met cela :
or ma variable ATKarmehéros existe !!!
je ne sais pas où je me suis planté .
j'ai récemment eu envie de faire un mini-jeu sur python avec des combats mais j'ai un problème lors du calcul des dégats :mon module
print ("Que veut tu faire ?")
print ("Tu peut :")
print ("1 = Attaquer avec ton arme")
print ("2 = Attaquer avec de la magie")
print ("3 = Te Défendre")
print ("Tape juste le chiffre")
actionhéros = int (input() ) ;
if (actionhéros == 1) :
Nombredégatattaquearme = ATKarmehéros +((nbrePUIShéros/2) +(nbreATKhéros/2)) - ((nbreDEFmonstre/2) + (nbreAGImonstre/2))
print ("Tu attaque 'Nombredégatattaquearme' .")
et on me met cela :
Traceback (most recent call last):
File "<pyshell#12>", line 1, in <module>
ATKarmehéros+nbrePUIShéros/2+nbreATKhéros/2-nbreDEFmonstre/2+nbreAGImonstre/2
NameError: name 'ATKarmehéros' is not defined
or ma variable ATKarmehéros existe !!!
je ne sais pas où je me suis planté .
A voir également:
- Aditionnement de variable
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp - Forum Microsoft Office
- Variable objet ou variable de bloc with non définie - Forum VB / VBA
- Vba range avec variable ✓ - Forum VB / VBA
- Vérifiez la variable d'environnement TEMP. QUE FAIRE ????? ✓ - Forum Microsoft Office
- Range avec une Variable ✓ - Forum VB / VBA
4 réponses
Salut, ta variable n'existe pas dans la portée du if. Avant toute chose, déclare les variables comme :
ATKarmeheros = 0
Python laisse pas mal de libertés mais il faut aussi de bonnes pratiques :-)
ATKarmeheros = 0
Python laisse pas mal de libertés mais il faut aussi de bonnes pratiques :-)
frères
Messages postés
49
Date d'inscription
Statut
Membre
Dernière intervention
1
d'accord mais j'ai un autre module qui demande la force de chaque chose et ATKarmehéros n'est pas toujours de zéros .
Comme le dit Rocky_123, ta variable n'existe pas dans cette portion du code.
Tu l'a sûrement créé dans le corps d'une fonction, dans un module externe ou quelque chose comme ça.
Si tu postais tout ton code, ou ne serais-ce que la partie où tu déclare cette variable, ce serait plus simple de trouver le problème, et au passage les classes sont plus qu'utiles dans ce genre de cas!
Tu l'a sûrement créé dans le corps d'une fonction, dans un module externe ou quelque chose comme ça.
Si tu postais tout ton code, ou ne serais-ce que la partie où tu déclare cette variable, ce serait plus simple de trouver le problème, et au passage les classes sont plus qu'utiles dans ce genre de cas!
D'accord voila tout le code :
print ("Combien de PV à le monstre ?")
nbrePVmonstre = int (input() ) ;
print ("Combien d'Attaque à-t'il ?")
nbreATKmonstre = int (input() ) ;
print ("Combien de PM à le monstre ?")
nbrePMmonstre = int (input() ) ;
print ("Combien de Puissance à-t'il ?")
nbrePUISmonstre = int (input() ) ;
print ("Combien de Defence à-t'il ?")
nbreDEFmonstre = int (input() ) ;
print ("Combien d'Agilité à-t'il ?")
nbreAGImonstre = int (input() ) ;
print ("Combien de Magie à-t'il ?")
nbreMAGmonstre = int (input() ) ;
print ("Combien de PV à le Héros ?")
nbrePVhéros = int (input() ) ;
print ("Combien d'Attaque à-t'il ?")
nbreATKhéros = int (input() ) ;
print ("Combien de PM à le Héros ?")
nbrePMhéros = int (input() ) ;
print ("Combien de Puissance à-t'il ?")
nbrePUIShéros = int (input() ) ;
print ("Combien de Defence à-t'il ?")
nbreDEFhéros = int (input() ) ;
print ("Combien d'Agilité à-t'il ?")
nbreAGIhéros = int (input() ) ;
print ("Combien de Magie à-t'il ?")
nbreMAGhéros = int (input() ) ;
print ("Es-ce que le héros à une arme ?")
print ("1- Oui")
print ("2- Non")
siarmehéros = int (input() ) ;
if ( siarmehéros == 1 ) :
print ("Combien à-t-elle d'Attaque")
ATKarmehéros = int (input() ) ;
else :
print ("D'accord pas d'arme")
print ("Que veut tu faire ?")
print ("Tu peut :")
print ("1 = Attaquer avec ton arme")
print ("2 = Attaquer avec de la magie")
print ("3 = Te Défendre")
print ("Tape juste le chiffre")
actionhéros = int (input() ) ;
if (actionhéros == 1) :
Nombredégatattaquearme = ATKarmehéros +((nbrePUIShéros/2) +(nbreATKhéros/2)) - ((nbreDEFmonstre/2) + (nbreAGImonstre/2))
print ("Tu attaque :")
print(Nombredégatattaquearme)
nbrePVmonstre = nbrePVmonstre - Nombredégatattaquearme
print ("Il reste au monstre :")
print (nbrePVmonstre)
Slt,
Il n'y a pas de correcteur orthographique en Python ... c'est dommage, parce que ça pique les yeux ....
:o|
Il n'y a pas de correcteur orthographique en Python ... c'est dommage, parce que ça pique les yeux ....
:o|
@Polux31 : Quelle réponse utile, et même si c'est vrai qu'il y des erreurs, c'est pas vraiment le sujet...
Sinon, pour ce qui est de ta variable existante/inexistante:
Tu déclare ta variable ATKarmehéros uniquement dans le cas où siarmehéros vaut 1, dans l'autre cas, elle n'est pas déclarée; c'est là ton erreur.
Tu devrais faire une fonction dans laquelle tu initialises toutes tes variables à 0, appelée en début de jeu ou quand le jeu est fini et que tu recommences une partie.
Si tu ne veux pas, tu peux simplement mettre ta variable ATKarmehéros à 0 quand il n'a pas d'arme:
Voilà, j'espère avoir réglé le problème! =)
Ps: Attention, normalement les variables n'ont pas d'accent (dans tous les cas) ni de majuscules (sauf pour les classes qui ont une maj au début et constantes qui sont entièrement en maj).
Voilà! Si t'as d'autres questions n'hésite pas!
Sinon, pour ce qui est de ta variable existante/inexistante:
Tu déclare ta variable ATKarmehéros uniquement dans le cas où siarmehéros vaut 1, dans l'autre cas, elle n'est pas déclarée; c'est là ton erreur.
Tu devrais faire une fonction dans laquelle tu initialises toutes tes variables à 0, appelée en début de jeu ou quand le jeu est fini et que tu recommences une partie.
def init(): return 0, 0, ..., 0 nbrePVmonstre, nbreATKmonstre, ..., ATKarmehéros = init()
Si tu ne veux pas, tu peux simplement mettre ta variable ATKarmehéros à 0 quand il n'a pas d'arme:
else : print ("D'accord pas d'arme") ATKarmehéros = 0
Voilà, j'espère avoir réglé le problème! =)
Ps: Attention, normalement les variables n'ont pas d'accent (dans tous les cas) ni de majuscules (sauf pour les classes qui ont une maj au début et constantes qui sont entièrement en maj).
Voilà! Si t'as d'autres questions n'hésite pas!
Avec une boucle while , tu devrais t'en sortir:
en gros ton programme va boucler sur tout ton code tant que fini vaut 0.
A toi de te débrouiller pour changer cette variable grâce au une question genre:
Si tu n'as pas envie de redemander à chaque fois les caractéristiques de ton perso,
tu peux faire boucler ton code juste sur la portion où tu demandes les pdv de l'ennemi et le moteur de jeu.
fini=0 while not fini: print ("Combien de PV à le monstre ?") nbrePVmonstre = int (input() ) ; print ("Combien d'Attaque à-t'il ?") nbreATKmonstre = int (input() ) ; ... if (actionhéros == 1) : Nombredégatattaquearme = ATKarmehéros +((nbrePUIShéros/2) +(nbreATKhéros/2)) - ((nbreDEFmonstre/2) + (nbreAGImonstre/2)) print ("Tu attaque :") print(Nombredégatattaquearme) nbrePVmonstre = nbrePVmonstre - Nombredégatattaquearme print ("Il reste au monstre :") print (nbrePVmonstre)
en gros ton programme va boucler sur tout ton code tant que fini vaut 0.
A toi de te débrouiller pour changer cette variable grâce au une question genre:
fini=int(input("voulez-vous continuer? 0=oui; 1=non"))
Si tu n'as pas envie de redemander à chaque fois les caractéristiques de ton perso,
tu peux faire boucler ton code juste sur la portion où tu demandes les pdv de l'ennemi et le moteur de jeu.