Bonjour, j'ai pour objectif de créer un jeu jouable dans la console python, l'utilisateur doit donc faire des choix pour faire avancer l'histoire, sauf que mon problème est que lors d'un choix dans une condition IF elle même dans un condition IF je n'arrive pas a remettre le choix précédents pour que l'utilisateur continue l'histoire et non que le programme s'arrête, je n'arrive pas a comprendre pourquoi de l'aide me serai grandement utile, merci.

Voici mon programme actuel :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
class Menu:
    def __init__(self, choix, texte = "" , histoire = "" , question = "" , invalidChoice = "Réponse invalide. Recommencez :" , choixCaches = {}):
        self.texte = texte
        self.question = question
        self.choix = choix
        self.histoire = histoire
        self.invalidChoice = invalidChoice
        self.choixCaches = choixCaches
        self.repeatChoice = False
 
    def propose(self, defaut = 0):
        print(self.texte)
        print ("---------")
        for k, v in self.choix.items():
            print(k, "-", v)
        print ("---------")
        result = input(self.question)
        while not (result in self.choix.keys() or result  in self.choixCaches.keys()):
            if self.repeatChoice:
                print(self.invalidChoice)
                print ("---------")
                for k, v in self.choix.items():
                    print(k, "-", v)
                print ("---------")
                result = input(self.question)
            else :
                result = input(self.invalidChoice)
        return result
 
    def suite_histoire (self,histoire):
        print("---------")
        self.histoire = histoire
        print(self.histoire)
        print("---------")
 
money = 0
attaque = 10
pv = 100
inventaire = []
 
 
choix = {}
choix['garçon'] = "Choisi d'être un homme."
choix['fille'] = "Choisi de ne pas savoir conduire."
choix['non-binaire'] = "Choisi au moins d'éxister"
choix_caches = {}
choix_caches['42'] = "Easter_egg_H2GS"
code_debut = {}
code_debut['13'] = "triche_premier_choix"
a = "Tu veux déjà tricher alors que tu ne connais pas le jeu ? Respecte le jeu quand même"
 
menu = Menu(choix, \
    "choisissez entre les choix suivants :",\
    "Quel est votre choix ?",\
    choixCaches = choix_caches)
 
menu.repeatChoice = True # Permet de dire les propositions
 
#-------------------------------------
reponse = menu.propose()
if reponse == 'fille':
    print("tu choisis donc d'être déstiné à rayer tes jantes.")
    genre = "femme"
elif reponse == 'garçon':
    print("Tu as choisi le sexe masculin.")                               #choix genre + code triche dispo
    genre = "homme"
elif reponse == 'non-binaire':
    print("Tu as choisi d'être... on ne sais pas trop")
    genre = "non-binaire"
elif reponse == '42':
    print(a,"\nTu possèdes maintenant les fonds nescessaire pour acheter 100 000 bouteilles de piquette. ")
    money += 10000000
    a = " "
#---------------------------------------
menu.repeatChoice = False
menu.suite_histoire("blablabla")
 
choix = {}
choix["explorer"] = "rester passif mais revenir plus fort plus tard"
choix["attaquer"] = "vous n'avez qu'une envie, c'est d'en finir"
 
menu = Menu(choix, \
    "choisissez entre les choix suivants :",\
    "Quel est votre choix ?",\
    choixCaches = choix_caches)
 
menu.repeatChoice = True
 
reponse = menu.propose()                                                 #intro + choix attaquer ou explorer
 
if reponse == "explorer" :
    print("tu peux chercher à trois endroits")
 
    choix = {}
    choix["tonneau"] = "fouille l'intérieur dun tonneau"
    choix["renfoncement"] = "dirige toi dans un coin sombre"
    choix["homme"] = "choisis de faire les poches d'un homme contre son gré"
 
    menu = Menu(choix, \
    "choisissez entre les choix suivants :",\
    "Quel est votre choix ?",\
    choixCaches = choix_caches)
 
    menu.repeatChoice = True
    reponse = menu.propose()
 
    if reponse == "tonneau" :
        print("tu fouille le tonneau et trouves un bout de bois robuste, il améliore ton attaque")
        print("ton attaque augmente de 5, elle est maintenant de",attaque+5)
        attaque += 5
        inventaire += ["bois robuste"]
        menu.repeatChoice = True
 
    elif reponse == "renfoncement" :
        print("tu avances dans un renfoncement et tombes sur un vieille homme qui essaie de te draguer")
        menu.repeatChoice = True
 
    elif reponse == "homme" :
        print("tu fouilles les poches de cet homme mais il te remarque evidemment il te rend la monnaie de ta pièce")
        print("tu perds 5 points de vie")
        pv -= 5
        menu.repeatChoice = True
 
elif reponse == "attaque" :
 
    pv_E = 100
    print("tu décides de te confronter au méchant")
    choix = {}
    choix["tete"] = "attaque la tête"
    choix["corps"] = "attaque le corps"
    choix["jambes"] = "attaque les jambes"
 
    menu = Menu(choix, \
    "choisissez entre les choix suivants :",\
    "Quel est votre choix ?",\
    choixCaches = choix_caches)
 
    menu.repeatChoice = True
    reponse = menu.propose()
 
    if reponse == "tete" :
        print("tu attaques la tête et le touche")
        coup_critique = random.randint(1,10)
        if coup_critique == 5 :
            pv_E -= 2*attaque
        else :
            pv_E -= random.randint(attaque,attaque+4)
        menu.repeatChoice = True
 
    if reponse == "corps" :
        bloquage = random.randint(1,2)
        if bloquage == 1 :
            print("tu attaque mais il bloque le coup et t'attaque en retour")
            pv_P = random.randint(2,5)
            print("tu perds",pv_P,"points de vie")
            pv -= pv_P
            menu.repeatChoice = True
 
        elif bloquage == 2 :
            print("ton attaque le touche")
            coup_critique = random.randint(1,10)
            if coup_critique == 5 :
                pv_E -= 2*attaque
            else :
                pv_E -= random.randint(attaque,attaque+4)
            menu.repeatChoice = True
 
    if reponse == "jambes" :
        print("tu le touches mais cela n'a aucun effet, sur lui cette attaque n'est pas efficasse")
 
#---------------------------------------
en clair si vous n'avez pas compris mon explication, a partir de la ligne 91 si je répond "explorer" puis "tonneau" le programme s'arrête alors que je voudrais qu'il revienne au choix entre : "tonneau" ; "renfoncement" et "homme", puis une fois que ces 3 choix aurait été saisi revenir au choix encore avant c'est a dire au moment où il faut choisir entre "explorer" ou "attaquer". J'espère que vous avez maintenant compris et donc que vous puissiez m'aider dans mon problème