Bonjour à tous,
Pour un TP, j'aimerais faire un menu dynamique en fonction d’éléments se trouvant dans une liste : mon indexation sera donc variable en fonction des éléments de liste ...
Un exemple concret => si mon soldat a dans sa liste une potion de survie et une armure, j'aimerais que mon menu lui propose :
1. attaquer
2. prendre potion
3. utiliser armure
Par contre s'il n'a qu'une armure, mon menu sera alors
1. attaquer
2. utiliser armure
Après ce menu, je veux lui demander un input pour connaitre son choix mais étant donné que les numéros varient (ormis l'attaque qui sera toujours proposé et toujours en 1), je ne sais pas comment gérer son choix de façon relativement "facile" (je pourrais faire des imbrications de if mais cela deviendrait vite compliqué) sachant que, dans l'exemple précédent, utiliser armure peut être en 2 ou en 3 en fonction de sa liste.
ci-dessous, vous aurez compris, je ne peux pas en ligne 29,34,39,44 utiliser une condition sur une valeur définie car elle est variable.
Si quelqu'un a une solution à proposer, je suis preneur.
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 i=1 print("Options:") print(f"{i} - Attaquer ?") if "potion" in hero.inventaire: i+=1 print(f"{i} - Utiliser potion soin ?") if "arme" in hero.inventaire: i+=1 print(f"{i} - Utiliser arme ?") if "armure" in hero.inventaire: i+=1 print(f"{i} - Utiliser armure ?") if "casque" in hero.inventaire: i+=1 print(f"{i} - Utiliser casque ?") choice = input("Choisissez une option: ") if choice == "1": print() hero.attack(monster_1) monster_1.attack(hero) if choice == "2": print() #méthode pour vider inventaire de potion et augmenter les pv monster_1.attack(hero) if choice == "3": print() #méthode pour vider inventaire de arme et augmenter les degat monster_1.attack(hero) if choice == "4": print() #méthode pour vider inventaire de armure et diminue attaque monster_1.attack(hero) if choice == "5": print() #méthode pour vider inventaire de casque et diminue attaque monster_1.attack(hero)
Damien
Partager