Bonjour, je n'arrive pas à repérer un problème ou détecter un bug, si quelqu'un pourrait m'indiquer comment m'en sortir svp. Chaque fois que le joueur devine une lettre, nombre_essai doit s'incrémenter de 1 dans la fonction deviner() Mais ça ne change pas. Aussi, le jeu n'est pas terminé, je n'ai pas implanté les essai_raté qui permettent d'afficher le tableau du pendu suivant à chaque fois que l'on se trompe, mais j'imagine que j'aurais le même problème.
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 | # -*- coding:Utf-8 -*- #jeu du pendu import random, sys TABLEAU = [ ' +---+ \n | | \n | \n | \n | \n | \n========= \n', ' +---+ \n | | \n 0 | \n | \n | \n | \n========= \n', ' +---+ \n | | \n 0 | \n | | \n | \n | \n========= \n', ' +---+ \n | | \n 0 | \n /| | \n | \n | \n========= \n', ' +---+ \n | | \n 0 | \n /|\\ | \n | \n | \n========= \n', ' +---+ \n | | \n 0 | \n /|\\ | \n / | \n | \n========= \n', ' +---+ \n | | \n 0 | \n /|\\ | \n / \\ | \n | \n========= \n' ] BANQUE = ['voiture', 'deux', 'coucou', 'cheval', 'banane', 'pompier'] def choix_mot(): x = random.randint(0, len(BANQUE)-1) mot = BANQUE[x] return mot def cacher_mot(mot_choisi): mot_caché = " _" * len(mot_choisi) return mot_caché def dessiner_tableau(essai): #vérifie le nombre d'essais et dessine le tableau en fonction print(TABLEAU[essai]) def afficher_mot(mot_cherché, mot_caché, lettres_trouvé): mot_caché = "" for i in mot_cherché: if i in lettres_trouvé: mot_caché += i else: mot_caché += ' _' return print(mot_caché) def deviner(nombre_essai, nombre_essai_max, mot_cherché, mot_caché, lettres_trouvé): essai = input("Essayez de deviner le mot secret, ou une lettre:\n>>>").lower() for i in mot_cherché: if essai == ":q" or essai == ":quit": sys.exit() elif len(essai) == 1 and essai == i: print("la lettre", essai, "est correcte !") print("elle se trouve en position :") lettres_trouvé.append(essai) nombre_essai += 1 break elif len(essai) == 1 and essai != i: print("la lettre", essai, "n'est pas dans le mot secret!") nombre_essai += 1 break elif len(essai) > 1 and essai == mot_cherché: print("ok") vérif_victoire(nombre_essai, nombre_essai_max, mot_cherché, mot_caché) break elif len(essai) > 1 and essai != mot_cherché: print("Ce n'est pas le bon mot!") nombre_essai += 1 break def vérif_victoire(nombre_essai, nombre_essai_max, mot_cherché, mot_caché): if nombre_essai <= nombre_essai_max and mot_cherché == mot_caché: print("BRAVO !") sys.exit() elif nombre_essai == nombre_essai_max and mot_cherché != mot_caché: print("PERDU !") sys.exit() def jeu(): nombre_essai_max = 6 nombre_essai = 0 essai_raté = 0 lettres_trouvé = [] mot_cherché = choix_mot() mot_caché = cacher_mot(mot_cherché) #print("mot cherché", mot_cherché, "mot_caché", mot_caché) vérification debug while nombre_essai <= nombre_essai_max: print("essai n°", nombre_essai) dessiner_tableau(essai_raté) afficher_mot(mot_cherché, mot_caché, lettres_trouvé) deviner(nombre_essai, nombre_essai_max, mot_cherché, mot_caché, lettres_trouvé) #joueur propose une lettre ou un mot vérif_victoire(nombre_essai, nombre_essai_max, mot_cherché, mot_caché) #vérifie si le jouer à trouver juste avant la fin des essais def menu(): print("Jeu du pendu") print("Deviner un mot avant que le nombre d'essais soit passé") réponse = input("Commencer une partie ?\n>>>").lower() if réponse == "oui" or réponse == "o": jeu() #else: #print("Ajouter un mot dans la banque ?") menu() |
+0
-0