-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpython-jogo-da-forca.py
More file actions
185 lines (153 loc) · 4.79 KB
/
Copy pathpython-jogo-da-forca.py
File metadata and controls
185 lines (153 loc) · 4.79 KB
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
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
# Desenvolvimento de Game em Linguagem Python
import random
from os import system, name
# Função para limpar a tela a cada execução
def limpa_tela():
if name == 'nt':
_ = system('cls')
# Mac ou Linux
else:
_ = system('clear')
# Função que desenha a forca na tela
def display_hangman(chances):
#Lista de estágios da forca
stages = [ # estágio 6 (final)
"""
--------
| |
| O
| \\|/
| |
| / \\
-
""",
# estágio 5
"""
--------
| |
| O
| \\|/
| |
| /
-
""",
# estágio 4
"""
--------
| |
| O
| \\|/
| |
|
-
""",
# estágio 3
"""
--------
| |
| O
| \\|
| |
|
-
""",
# estágio 2
"""
--------
| |
| O
| |
| |
|
-
""",
# estágio 1
"""
--------
| |
| O
|
|
|
-
""",
# estágio 0
"""
--------
| |
|
|
|
|
-
"""
]
return stages[chances]
# Função Game
def game():
limpa_tela()
# Inicio da interface
print("\n**************Bem vindo(a) ao jogo da forca!**************")
print("\nEscolha uma das opções abaixo")
print("1 - Desejo inserir um conjunto de palavras para adivinhar")
print("2 - Desejo inserir somente uma palavra para forca")
palavras = []
escolha = int(input("\nDigite a opção numérica: "))
if escolha == 1:
while True:
entrada = input("Digite uma palavra (ou 'sair' para encerrar o conjunto e iniciar o jogo): ").lower()
if entrada == "sair":
break
palavras.append(entrada)
else:
entrada = input("Digite uma palavra para ser adivinhada: ").lower()
palavras.append(entrada)
limpa_tela()
# Tela inicial da forca
print("Adivinhe a palavra abaixo: \n")
palavra = random.choice(palavras)
lista_letras_palavras = [letra for letra in palavra]
tabuleiro = ["_"] * len(palavra)
chances = 6
# Lista para as letras erradas
letras_tentativas = []
while chances > 0:
print(display_hangman(chances))
print("Palavra: ", tabuleiro)
print("\n")
# Tentativa
tentativa = input("\nDigite um palpite: ").lower() # converte o resultado para letra minúscula
# Caso o usuário digite a palavra inteira
if tentativa == palavra:
lista_letras_palavras = tentativa
certo = True
break
if tentativa in letras_tentativas:
print("Você já tentou essa letra. Escolha outra!")
continue
# Lista de tentativas
letras_tentativas.append(tentativa)
# Condicional - digitando letra por letra
if tentativa in lista_letras_palavras:
print("Você acertou a letra!")
# Loop
for indice in range(len(lista_letras_palavras)):
#Condicional
if lista_letras_palavras[indice] == tentativa:
tabuleiro[indice] = tentativa
certo = True
# Condicional
if "_" not in tabuleiro:
certo = True
break
else:
print("Ops. Essa letra não está na palavra!")
chances -= 1
if certo == True:
print("\nVocê venceu, a palavra era: {}".format(palavra))
# Condicional - fora do while
if "_" in tabuleiro and chances == 0:
print("\nVocê perdeu, a palavra era: {}".format(palavra))
# Bloco main
if __name__ == "__main__":
game()