Problème pendu...
OmeGaFire_
Messages postés
83
Date d'inscription
Statut
Membre
Dernière intervention
-
Felice_ Messages postés 265 Date d'inscription Statut Membre Dernière intervention -
Felice_ Messages postés 265 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Apprenant le Python, j'ai tenté de faire un pendu, mais une erreur que je n'arrive pas à trouver se manifeste.
Le code:
Bonne journée, OmeGaFire_
Apprenant le Python, j'ai tenté de faire un pendu, mais une erreur que je n'arrive pas à trouver se manifeste.
Le code:
#Imports
from random import choice
#Initialisation variables importantes
letter = ""
#Mots pendu
def getWords():
wordsList = [
"peinture",
"ecran",
"montagne",
"carte",
"python",
"balle",
"clavier",
"espoir",
"volant",
"carton",
"couteau",
"fiche",
"feuille",
"travail",
"sciences",
"scandale",
"canard",
"utile",
]
return wordsList
#Permet d'obtenir un mot random
def pickWord():
return choice(getWords())
#Récupération des entrées de l'utilisateur
def GetLettre():
lettre = input("Tapez une lettre: ")
lettre = lettre.lower()
if (len(lettre) > 1 or not lettre.isalpha()):
return GetLettre()
else:
return lettre
#Obtention du mot en partie trouvé
def getMaskedWord(word, foundLettres, testLettre):
maskedWord = ""
for lettre in word:
if testLettre in word:
maskedWord += foundLettres
else:
maskedWord+="*"
return maskedWord
#Initialisation
def main(word):
b = True
while (b ==True):
letter+=GetLettre() #Erreur ici
print("Mot: ", getMaskedWord(word, letter))
main()
#Variabled + start
word = pickWord()
main(word)
Bonne journée, OmeGaFire_
A voir également:
- Problème pendu...
- Jeu du pendu - Télécharger - Vie quotidienne
- Télécharger jeu du pendu gratuit - Télécharger - Jeux vidéo
- [MAC/ Python]: impossible de run mon pendu - Forum Python
1 réponse
Bonsoir,
Essais avec un "global letter"
ou alors rajoutes letter en paramètre de ta fonction main.
Ton problème est expliqué ici :
https://python.developpez.com/faq/?page=Questions-Python#J-ai-ce-message-UnboundLocalError-local-variable-referenced-before-assignment-Ca-veut-dire-quoi
D'ailleurs tu n'as pas besoins de rappeler main à la ligne 7 ici puisque tu es dans une boucle while. Sinon tu rappelles main qui exécute la boucle while et qui appelle à nouveau main pour ensuite etc ..
Après avoir résolu ce problème il y en a un autre, il manque une variable lors de l'appel de la fonction getMaskedWord.
Tu peux aussi te passer de la fonction getWords et pickWord, initialiser wordsList après letter et ainsi affecter à word choice(wordsList)
En espérant t'avoir aidé,
Bonne soirée !
Essais avec un "global letter"
def main(word): global letter [...]
ou alors rajoutes letter en paramètre de ta fonction main.
#Initialisation def main(word, letter): b = True while (b ==True): letter+=GetLettre() #Erreur ici print("Mot: ", getMaskedWord(word, letter)) main() main(word, letter)
Ton problème est expliqué ici :
https://python.developpez.com/faq/?page=Questions-Python#J-ai-ce-message-UnboundLocalError-local-variable-referenced-before-assignment-Ca-veut-dire-quoi
D'ailleurs tu n'as pas besoins de rappeler main à la ligne 7 ici puisque tu es dans une boucle while. Sinon tu rappelles main qui exécute la boucle while et qui appelle à nouveau main pour ensuite etc ..
Après avoir résolu ce problème il y en a un autre, il manque une variable lors de l'appel de la fonction getMaskedWord.
TypeError: getMaskedWord() missing 1 required positional argument: 'testLettre'
Tu peux aussi te passer de la fonction getWords et pickWord, initialiser wordsList après letter et ainsi affecter à word choice(wordsList)
#Mots pendu wordsList = [ "peinture", "ecran", "montagne", "carte", "python", "balle", "clavier", "espoir", "volant", "carton", "couteau", "fiche", "feuille", "travail", "sciences", "scandale", "canard", "utile", ] [ ... ] #Variabled + start word = choice(wordsList)
En espérant t'avoir aidé,
Bonne soirée !
OmeGaFire_
Messages postés
83
Date d'inscription
Statut
Membre
Dernière intervention
Merci :) J'essaie ça de suite
OmeGaFire_
Messages postés
83
Date d'inscription
Statut
Membre
Dernière intervention
Autre problème :'( https://prnt.sc/fbrgkb
Felice_
Messages postés
265
Date d'inscription
Statut
Membre
Dernière intervention
11
>
OmeGaFire_
Messages postés
83
Date d'inscription
Statut
Membre
Dernière intervention
Tu appelles deux fois la fonction « GetLettre() », place là dans une variable, comme :