-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathforca_v1.py
More file actions
165 lines (138 loc) · 4.06 KB
/
Copy pathforca_v1.py
File metadata and controls
165 lines (138 loc) · 4.06 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
# -*- coding: UTF8 -*-
# Jogo da forca feito para estudo de POO
# Feito por Gabriel Gimenez de Lima
# Aqui ficam os imports
import random
# Criação da lista cujos elementos são a fase do tabuleiro do jogo
lista_tabuleiro = [
'''
+---------+
| |
|
|
|
======
''',
'''
+---------+
|
| 0
|
|
|
======
''',
'''
+---------+
|
| 0
| |
|
|
======
''',
'''
+---------+
|
| 0
| /|
|
|
======
''',
'''
+---------+
|
| 0
| /|\\
|
|
======
''',
'''
+---------+
|
| 0
| /|\\
| /
|
======
''',
'''
+---------+
|
| 0
| /|\\
| / \\
|
======
'''
]
# função que pega uma palavra do arquivo txt préviamente gravado
def pega_palavra():
with open("palavras.txt", "rt") as arquivo:
banco = arquivo.readlines()
return banco[random.randint(0, len(banco)-1)].strip()
#função para cadastrar palavras
def cadastrar_palavra():
palavra = input('Qual palavra deseja cadastrar?')
with open("palavras.txt","at") as arquivo:
arquivo.write('\n'+palavra)
print('Palavra Cadastrada!!')
menu()
#Função que cria o menu de opções
def menu():
opc = int(input('Qual opção?\n1-Cadastrar Palavras 2-Jogar'))
if opc == 1:
cadastrar_palavra()
else:
main()
#Criação da classe do jogo
class Forca:
def __init__(self,palavra):
self.palavra = palavra
self.letras_erradas = []
self.letras_corretas = []
#Método que executa a parte de advinhar a letra
def advinha_letra(self,letra):
if letra in self.palavra and letra not in self.letras_corretas :
self.letras_corretas.append(letra)
elif letra not in self.palavra and letra not in self.letras_erradas:
self.letras_erradas.append(letra)
else:
return False
return True
#Método que retorna true se o jogo acabou
def fim_de_jogo(self):
return self.jogo_ganho() or (len(self.letras_erradas) == 6)
#método que verifica se o jogador ganhou
def jogo_ganho(self):
return '_' not in self.esconde_palavra()
#Método que esconde a palavra
def esconde_palavra(self):
palavra_escondida = ''
for letra in self.palavra:
if letra not in self.letras_corretas:
palavra_escondida += '_ '
else:
palavra_escondida += letra
return palavra_escondida
#Método que retorna o status do jogo
def status_jogo(self):
print(lista_tabuleiro[len(self.letras_erradas)])
print(self.esconde_palavra())
print('Letras corretas:\n', self.letras_corretas)
print('Letras erradas:\n', self.letras_erradas)
#função main para iniciar o jogo
def main():
enforcado = Forca(pega_palavra())
while ( not enforcado.fim_de_jogo()):
enforcado.status_jogo()
enforcado.advinha_letra(input('Qual letra você acha que tem na palavra? '))
#verifica se o jogador ganhou ou não
if enforcado.jogo_ganho():
print('Parabéns!!! você venceu, adorei jogar com você.')
else:
print('que pena!! parece que eu venci\n a palavra escondida era: ', enforcado.palavra)
#executando o programa
menu()