01.
import
random
02.
03.
def
hang87():
04.
05.
06.
palavras
=
open(
'/tempo/data/palavras.txt'
).read().split()
07.
secreta
=
list(random.choice(palavras))
08.
dicio
=
seq_to_dict(secreta)
09.
10.
TAMANHO
=
len(secreta)
11.
LIMITE
=
limite(TAMANHO)
12.
13.
pal_utilizador
=
list(
'_'
*
TAMANHO)
14.
acertou
=
False
15.
letras_usadas
=
[]
16.
17.
18.
for
tentativa
in
range(LIMITE):
19.
20.
mostra_palavra(pal_utilizador)
21.
22.
letra
=
adivinha(letras_usadas)
23.
24.
if
letra
in
dicio:
25.
26.
indices
=
dicio[letra]
27.
for
ind
in
indices:
28.
pal_utilizador[ind]
=
letra
29.
30.
if
fim(secreta,pal_utilizador):
31.
acertou
=
True
32.
mensagem_sim(secreta)
33.
break
34.
35.
letras_usadas.append(letra)
36.
37.
mensagem_fim(acertou,secreta)
38.
39.
40.
41.
42.
43.
def
adivinha(letras_usadas):
44.
45.
letra
=
raw_input(
'Escolha uma letra: '
)
46.
47.
while
letra
in
letras_usadas:
48.
print
49.
print
'*** Letra já usada. Escolha outra sff!***'
50.
print
51.
letra
=
raw_input(
'Escolha uma letra: '
)
52.
return
letra
53.
54.
def
limite(tam_palavra):
55.
56.
return
tam_palavra
57.
58.
def
mensagem_sim(secreta):
59.
print
60.
print
'Uau! Acertou!'
61.
mostra_palavra(secreta)
62.
print
63.
64.
def
mensagem_fim(acertou,secreta):
65.
if
not
acertou:
66.
print
'Oops! Esgotaram-se as suas hipóteses...'
67.
print
'A palavra secreta era: '
68.
mostra_palavra(secreta)
69.
print
'See you!'
70.
71.
def
mostra_palavra(palavra):
72.
73.
pal
=
' '
.join(palavra)
74.
print
'Palavra:'
75.
print
pal
76.
print
77.
78.
def
fim(secreta, utilizador):
79.
return
secreta
=
=
utilizador
80.
81.
82.
83.
def
seq_to_dict(palavra):
84.
85.
86.
87.
88.
dicio
=
{}
89.
for
indice,letra
in
enumerate(palavra):
90.
dicio[letra]
=
dicio.get(letra,[])
+
[indice]
91.
return
dicio
92.
93.
if
__name__
=
=
'__main__'
:
94.
hang87()
Sem comentários:
Enviar um comentário