Sagot :
Réponse :
Bonjour, tout d'abord, bravo pour ton code python, il est vraiment pas mal continue à t'exercer, cherche sur internet quand tu as une erreur ou quelques chose que tu ne sais pas, tu trouveras forcément ;)
Pour ce qui est de ton code, je l'ai optimisé:
- on utilise plus open() dans une variable pour utiliser un fichier, utilise with open() as file.
- j'ai restructuré le code afin que les lettres s'affichent sur les pointillés :)
- j'ai fais en sorte de garder un code simple pour que tu puisses le lire et le comprendre, si tu as des questions n'hésite pas à me les poser.
PS: la ligne " os.system('cls') " qui permet de nettoyer la console ne marche que sur un environnement Windows.
Python :
import os
import random
def affichage(n):
pendu = [
"""
+-------+
| |
| O
| -|-
| | |
|
==============
""",
"""
+-------+
| |
| O
| -|-
| |
|
==============
"""
,
"""
+-------+
| |
| O
| -|-
|
|
==============
""",
"""
+-------+
| |
| O
| -|
|
|
==============
""",
"""
+-------+
| |
| O
| |
|
|
==============
""",
"""
+-------+
| |
| O
|
|
|
==============
""",
"""
+-------+
|
|
|
|
|
==============
"""
]
return pendu[n]
def pendu_logique():
global n, writable_mot, for_list_mot
with open("tous_les_mots.txt", "r") as file:
list_des_mots = file.readlines()
for i in list_des_mots:
i.replace('\n', '') # supprime les '\n' dans les éléments de la liste
readable_mot = random.choice(list_des_mots)
writable_mot = readable_mot
for_list_mot = readable_mot
n = 6 # index de la liste pendu
lettres_trouvees = []
for i in range(1, len(readable_mot)):
lettres_trouvees.append('-')
def pendu_affichage():
global n, writable_mot, for_list_mot
while (n > 0):
os.system('cls') # nettoie le cmd
if str(''.join(lettres_trouvees)).split() == str(readable_mot).split():
print("You win !\nLe mot était", readable_mot)
return
print("longueur du mot:", len(readable_mot))
print(affichage(n) + '\n')
print(" ", ''.join(lettres_trouvees))
lettre = input("\nVotre lettre : ")
if len(lettre) > 1 or lettre == "" or lettre == " ":
# ne compte pas, redemande une saisie
pendu_affichage()
if lettre in writable_mot:
while lettre in writable_mot:
lettre_index = writable_mot.find(lettre)
lettre_index_for_list = for_list_mot.find(lettre)
lettres_trouvees[lettre_index_for_list] = lettre
for_list_mot = for_list_mot.replace(for_list_mot[lettre_index_for_list], '-', 1)
print(for_list_mot)
writable_mot = writable_mot.replace(writable_mot[lettre_index], '', 1)
else:
n -= 1
print(affichage(n) + '\n')
print("Perdu !\nLe mot était", readable_mot)
return
pendu_affichage()
if __name__ == "__main__":
print("Le Jeu Pendu Commence :")
pendu_logique()