-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpendu.py
151 lines (142 loc) · 3.69 KB
/
pendu.py
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
#!/usr/bin/env python3
from random import*
import os
import sys
def resource_path(relative_path):
""" Get absolute path to resource, works for dev and for PyInstaller """
try:
# PyInstaller creates a temp folder and stores path in _MEIPASS
base_path = sys._MEIPASS
except Exception:
base_path = os.path.abspath(".")
return os.path.join(base_path, relative_path)
score = 0
mots = []
with open(resource_path("dico.txt"), "r", encoding="utf-8") as file:
for ligne in file:
mots.append(ligne)
for mot in range(len(mots)):
mots[mot] = mots[mot].rstrip('\n')
lettres = [chr(i) for i in range(65, 91)]
def dessinPendu(nb):
tab=[
"""
+-------+
| |
|
|
|
|
==============
"""
,
"""
+-------+
| |
| O
|
|
|
==============
"""
,
"""
+-------+
| |
| O
| |
|
|
==============
""",
"""
+-------+
| |
| O
| -|
|
|
==============
""",
"""
+-------+
| |
| O
| -|-
|
|
==============
""",
"""
+-------+
| |
| O
| -|-
| |
|
==============
""",
"""
+-------+
| |
| O
| -|-
| | |
|
==============
"""
]
return tab[nb]
def restart():
continuer = input("Voulez-vous faire encore une partie [y/N] : ").lower()
if continuer == 'y':
pendu()
else:
quit()
def pendu():
global score, mots, lettres
lettres_utilisees = []
nb_erreurs = 0
nb = randint(0,len(mots))
mot_choisi = mots[nb]
#print(mot_choisi)
print("JEU DU PENDU")
mot_cache = ["_" for c in range(len(mot_choisi))]
for i in range(len(mot_cache)-1):
print(f"{mot_cache[i]} ", end="")
print(mot_cache[-1])
while nb_erreurs <= 7:
lettre = input("Saississez une lettre : ").upper()
if lettre in lettres_utilisees:
print("Tu as déjà utilisé cette lettre !")
else :
if lettre == '':
print("Veuillez saisir une lettre.")
if lettre not in lettres:
print("Veuillez saisir un caractère valide. Dommage pour vous !")
elif lettre not in lettres_utilisees:
lettres_utilisees.append(lettre)
# print(lettres_utilisees)
if lettre in mot_choisi:
for i in range(len(mot_choisi)):
if mot_choisi[i] == lettre:
mot_cache[i] = lettre
#print(mot_cache)
if "_" not in mot_cache:
score += 1
print(f"Félicitations, vous avez gagné ! Le mot à deviner était {mot_choisi}.")
print(f"Votre score est désormais de {score}.")
restart()
else:
print(dessinPendu(nb_erreurs))
nb_erreurs = nb_erreurs+1
if nb_erreurs == 7:
print(f"Vous avez perdu ! Le mot à trouver était : {mot_choisi}. Réessayez et peut-être que vous réussirez !")
print(f"Votre score était de {score}. Il a été maintenant réinitialisé à 0.")
score = 0
restart()
for i in range(len(mot_cache)-1):
print(mot_cache[i], end="")
print(" ", end="")
print(mot_cache[-1])
pendu()