Problème avec une fonction

Fermé
Smil3x Messages postés 8 Date d'inscription jeudi 26 mai 2022 Statut Membre Dernière intervention 27 mai 2022 - 26 mai 2022 à 21:12
Smil3x Messages postés 8 Date d'inscription jeudi 26 mai 2022 Statut Membre Dernière intervention 27 mai 2022 - 27 mai 2022 à 19:24
Bonsoir,

j'ai un problème avec ma fonction. En fait, peu importe la touche que je fais c'est toujours l'option "a" ou "A" qui est choisit. Que je mette F pour fuir ou même une autre lettre du clavier. Je ne comprends pas étant donner que mes conditions me semblent correctes.

Merci de m'aider.

from Guerrier import Guerrier1
from Squelette import Squelette1

def combat(joueur, mob):
    while mob.vie >0:
        choix = input("Pour attaquer appuyer sur A. Pour fuir appuyer sur F.")
        if choix == "a" or "A":
            mob.vie -= joueur.attaque
            print("Vous mettez :", joueur.attaque, "de dégâts !")
            print("Il reste :", mob.vie, "points de vie au", mob.nom)
            if mob.vie <= 0:
                print("Le", mob.nom, "est mort.")
            else :
                joueur.vie -= mob.attaque
                print("Le", mob.nom, "vous a mis", mob.attaque, "point de dégâts !")
                print("Il vous reste", joueur.vie, "points de vie")
                if joueur.vie <= 0 :
                    print("Vous êtes mort")
                    break
        elif choix == "f" or "F":
            print("Vous avez pris la fuite.")
        else :
            print("Je n'ai pas compris.Pour attaquer appuyer sur A. Pour fuir appuyer sur F.")

combat(Guerrier1, Squelette1)

2 réponses

Whismeril Messages postés 19030 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 27 avril 2024 931
26 mai 2022 à 22:05
0
Smil3x Messages postés 8 Date d'inscription jeudi 26 mai 2022 Statut Membre Dernière intervention 27 mai 2022
27 mai 2022 à 16:54
Je viens de lire l’article mais je ne comprends pas mon erreur dans ce code. Si le choix est égal à « A » ou « a » on attaque. Si le choix est égal a « f » ou « F » c’est la fuite. Le programme lorsque je rentre « F » ou « f » me fait attaquer.
0
Whismeril Messages postés 19030 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 27 avril 2024 931
27 mai 2022 à 18:28
Ici
if choix == "a" or "A":

Cette ligne veut dire, si choix vaut "a" ou si "A".
Or pour python "A" n'est pas faux, donc ça veut dire si choix vaut "a" ou si vrai.
Donc c'est toujours vrai.

Dans l'article, dans le paragraphe sur le ou, on te montre qu'il faut demander si choix vaut "a" ou si choix vaut "A"
0
Smil3x Messages postés 8 Date d'inscription jeudi 26 mai 2022 Statut Membre Dernière intervention 27 mai 2022
27 mai 2022 à 19:24
Merci, bonne soirée.
0