-
Notifications
You must be signed in to change notification settings - Fork 76
/
Forca.py
111 lines (102 loc) · 2.07 KB
/
Forca.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
forca = ['''
+------+
|
|
|
|
|
+--------+ ''', '''
+------+
| |
|
|
|
|
+--------+ ''', '''
+------+
| |
o |
|
|
|
+--------+ ''', '''
+------+
| |
o |
| |
|
|
+--------+ ''', '''
+------+
| |
o |
/| |
|
|
+--------+ ''', '''
+------+
| |
o |
/|\ |
|
|
+--------+ ''', '''
+------+
| |
o |
/|\ |
/ |
|
+--------+ ''', '''
+------+
| |
o |
/|\ |
/ \ |
|
+--------+ ''']
certas = erradas = ''
import requests
url = 'https://www.ime.usp.br/~pf/dicios/br-sem-acentos.txt'
palavras = requests.get(url).text.lower().split()
from random import choice
def escolhe(): return choice(palavras)
def desenha():
print(forca[len(erradas)])
for c in sorteada:
print (c if c in certas else '_', end = ' ')
print()
from string import digits, punctuation
def chute(letras):
while True:
x = input('Chute uma letra: ').lower()
if x in letras:
print('Repetiu letra')
elif x in digits + punctuation:
print('Caracter inválido')
elif len(x) != 1:
print('Somente uma letra')
else:
return x
def jogar_novamente():
return input('Deseja jogar novamente? (SN)').lower() == 's'
def ganhou():
return set(sorteada) == set(certas)
sorteada = escolhe()
while True:
desenha()
x = chute(certas + erradas)
if x in sorteada: certas = certas + x
else: erradas = erradas + x
if len(erradas) == len(forca):
print(f'Morreu, a palavra era {sorteada}')
if jogar_novamente():
certas = erradas = ''
sorteada = escolhe()
else: break
elif ganhou():
print(f'Acertou a palavra {sorteada}')
if jogar_novamente():
certas = erradas = ''
sorteada = escolhe()
else: break