coucou tout le monde
je suis toujours sur mon jeu du pendu depuis 2 semaine , mais je passerai pas au prochain chapitre avant d'avoir reussi
alors voila , j'ai un petit soucis
par exemple si je génére le mot "garage"
et que j'entre la lettre "a"
il va s'afficher sa : "*a*a**"
le problème c'est que que quand il me redemande une lettre , il ne prend pas en compte les lettres trouvée
voila mon code source
pendu.py
!/usr/local/bin/python3.2
# -*-coding:Utf-8 -*
#on declare ce qu'on a besoin de lié
from donnees import *
from fonctions import *
#on test si cela est ok
mot_aleatoire = choix_mot_depart()
print(mot_aleatoire,"OK")
while nombre_de_coup > 0:
print("vous avez",nombre_de_coup,"chances avant d'etre pendu")
lettre_choisi = recup_lettre()
print("vous avez tapé la lettre",lettre_choisi)
#fonctiont test a deplacer quand cela marchera dans fonction.py
mot_chercher = mot_aleatoire
mot_chercher = list(mot_chercher)
i = 0
while i < len(mot_aleatoire):
if lettre_choisi == mot_aleatoire[i]:
mot_chercher[i] = lettre_choisi
i = i + 1
else:
mot_chercher[i] = "*"
i = i + 1
nombre_de_coup = nombre_de_coup - 1
print("il vous reste",nombre_de_coup,"coups")
print(mot_chercher)
#!/usr/local/bin/python3.2
# -*-coding:Utf-8 -*
from random import choice
from donnees import *
def choix_mot_depart():
return choice(liste_de_mots)
def recup_lettre():
lettre = input("taper une lettre : ")
lettre = lettre.lower()
if len(lettre)>1 or not lettre.isalpha():
print("Vous n'avez pas saisi une lettre valide")
return recup_lettre()
else:
return lettre
voila un exemple
kiwi OK
vous avez 8 chances avant d'etre pendu
taper une lettre : i
vous avez tapé la lettre i
il vous reste 7 coups
['*', 'i', '*', 'i']
vous avez 7 chances avant d'etre pendu
taper une lettre : b
vous avez tapé la lettre b
il vous reste 6 coups
['*', '*', '*', '*']
On estime à environ 550 millions le nombre d'armes à feu actuellement en circulation. Autrement dit il y a un homme sur douze qui est armé sur cette planète. La seule question c'est … comment armer les onze autres ?
tu dis que si le caractère à l'index i n'est pas bon, alors mettre un "*".
Or, s'il y a déjà un "*" c'est pas peine la mettre un "*",
et si c'est un caractère différent de "*", c'est que c'est une lettre qui à déjà été trouvé ...
dans "KIWI" tu places tes 'I', puis quand tu entres un 'B', 'I' étant différent de 'B' tu le remplaces par un '*' ...
Voilà un petit exemple vite fait, j'ai pas eu le temps de regarder, mais vite fait je pense à une erreur dans l'initialisation de ta liste concernant ton mot caché.
Un code vite fait pour t'aider à comprendre l'initialisation.
>>> mot = "armoire"
>>> mot_cache = ['_' for letter in mot]
>>> mot_cache
['_', '_', '_', '_', '_', '_', '_']
>>> terminate = False
>>> while terminate == False:
... if ''.join(mot_cache) == mot:
... terminate = True
... else:
... letter = input("Enter the letter : ")
... for ind, char in enumerate(mot):
... if char == letter:
... mot_cache[ind] = letter
... print(mot_cache)
...
Enter the letter : a
['a', '_', '_', '_', '_', '_', '_']
Enter the letter : r
['a', 'r', '_', '_', '_', 'r', '_']
Enter the letter : e
['a', 'r', '_', '_', '_', 'r', 'e']
Enter the letter : m
['a', 'r', 'm', '_', '_', 'r', 'e']
Enter the letter : p
['a', 'r', 'm', '_', '_', 'r', 'e']
Enter the letter : o
['a', 'r', 'm', 'o', '_', 'r', 'e']
Enter the letter : i
['a', 'r', 'm', 'o', 'i', 'r', 'e']
évitez la boucle while quand vous pouvez le faire, c'est le cas pour la 2ème boucle du code d'origine.
recup_lettre() est simplement une fonction input(), je vois pas trop l'intérêt de modifier le nom.
Il me semble que c'est dans le bloc else que se trouve le problème.
merci bien en effet , la boucle réecrivé a chaque passage une "*" donc sa remeter le mot en etoiles
On estime à environ 550 millions le nombre d'armes à feu actuellement en circulation. Autrement dit il y a un homme sur douze qui est armé sur cette planète. La seule question c'est … comment armer les onze autres ?
jeu du pendu [2]
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
On estime à environ 550 millions le nombre d'armes à feu actuellement en circulation. Autrement dit il y a un homme sur douze qui est armé sur cette planète. La seule question c'est … comment armer les onze autres ?
Python c'est bon, mangez-en.
On estime à environ 550 millions le nombre d'armes à feu actuellement en circulation. Autrement dit il y a un homme sur douze qui est armé sur cette planète. La seule question c'est … comment armer les onze autres ?