-
Notifications
You must be signed in to change notification settings - Fork 0
/
forca.py
109 lines (87 loc) · 2.35 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
#==============#
#Henrique César#
#==============#
#Importações
from random import randint
from palavras import *
from funcoes import *
from time import sleep
import os
#Devido a mudança de comando no cmd do windows e no terminal do linux
#Adaptei o comando para o cmd e terminal
if os.name == 'nt':
limpar = 'cls'
reinicio = 'python forca.py'
else:
reinicio = 'python3 forca.py'
limpar = 'clear'
os.system(limpar)
#Menu de tema
titulo()
print(f' [ 1 ] --> {vermelho}Frutas{reset} \n [ 2 ] --> {vermelho}Animais{reset} \n [ 3 ] --> {vermelho}Países{reset}')
try:
tema = int (input('\n [tema]--> '))
except:
print('erro')
os.system(reinicio)
os.system(limpar)
#palavra definida com base no tema
if tema == 1:
num = randint(0, len(frutas) -1)
palavra = ' '.join(frutas[num]).split()
elif tema == 2:
num = randint(0, len(animais) -1)
palavra = ' '.join(animais[num]).split()
elif tema == 3:
num = randint(0, len(paises) -1)
palavra = ' '.join(paises[num]).split()
#Número de letras presentes na palavra
num = len(palavra)
#Cria uma lista do tamanho da lista da palavra
numletras = []
for c in range(num):
numletras.append('_')
#Variável dos erros
erros = 0
#Interface
titulo()
forca()
#Lista com as letras descartadas
letras_usadas = []
#Loop que acontece o jogo
while True:
print(f'Letras descobertas {verde + " ".join(numletras) + reset}')
print(f'letras descartadas: {vermelho + " ".join(letras_usadas) + reset}')
letra = input (f'[{magenta}digite uma letra{reset}]--> ')
os.system(limpar)
titulo()
if letra not in char or letra in letras_usadas:
forcas(erros)
else:
#Se a letra estiver presente na palavra
if letra in palavra:
for i in range(len(palavra)):
if palavra[i] == letra:
numletras.pop(i)
numletras.insert(i, letra)
#As forcas são desenhadas com base na variável erros
forcas(erros)
#Caso a lista numletras seja igual a lista palavras, o usuário vence
if numletras == palavra:
vitoria()
print(f'A palavra era { magenta + "".join(palavra)}')
sleep(10)
break
#caso não esteja
else:
erros = erros + 1
letras_usadas.append(letra)
#Desenha o personagem na forca quando o usuário erra
forcas(erros)
#se erros for igual a 6, o usuário perde
if erros == 6:
erro6()
print(f'A palavra era {magenta + "".join(palavra)}')
sleep(10)
break
os.system(reinicio)