Jogo da Forca em Python
- #Python
Nesse artigo demonstro um exemplo de código Python na construção de um jogo da forca, em que o usuário tenta adivinhar o nome de uma fruta.
Observações:
- Para rodar o jogo vá no prompt de comando (ou no PowerShell);
- Depois, copie e cole o caminho da pasta onde você salvou o arquivo jogo_da_forca.py (cd + caminho da pasta);
- Por fim, digite Python e jogo_da_forca.py
Detalhes do jogo:
No jogo o usuário tem 10 chances de acertar o nome de uma fruta. Ao iniciar o jogo, primeiro é solicitado que o usuário digite uma letra.
O sistema verifica se a letra digitada pertence a palavra oculta e depois é perguntado ao usuário se ele deseja responder qual é a palavra oculta.
Se o jogador decidir responder e acertar, o jogo termina com sua vitória, mas se ele errar o jogo já é encerrado.
Se o usuário decidir não responder, ele pode digitar uma nova letra até ele decidir responder qual é a palavra oculta.
O usuário perde o jogo se ele não conseguir adivinhar a palavra em 10 chances
GitHub: https://github.com/phael8919/jogo_da_forca
Código:
def jogo_da_forca():
print('----x----x---- JOGO DA FORCA ----x----x----')
print('----- ADIVINHE O NOME DE UMA FRUTA -----\n')
import random as rd
lista = ['LIMAO','ABACAXI','JABUTICABA','UVA','MELANCIA','ABACATE','MORANGO','ABACATE','PEQUI']
#Função para escolher uma palavra da lista aleatoriamente
def palavra_aleatoria(lista):
tamanho = len(lista)
sorteio = rd.randint(1,tamanho)
palavra_aleatoria = lista[sorteio]
return palavra_aleatoria
#função para localizar as posições de uma letra em uma palavra
def localizar(texto,palavra):
posicoes = []
for i in range(0,len(texto)):
if texto[i] == palavra:
posicoes.append(i)
return posicoes
palavra = palavra_aleatoria(lista)
print(f'DICA: A palavra tem {len(palavra)} letras')
chances = 0
pal_secreta = list('_' * len(palavra))
while chances <= 10:
letra_digitada = input('Digite somente uma letra: ').upper()
if letra_digitada in palavra:
print(f'A letra {letra_digitada} está contida na frase')
posicao = localizar(palavra,letra_digitada)
for i in posicao:
pal_secreta[i] = letra_digitada
print(pal_secreta)
opcao = input('Você já sabe qual é o nome da palavra? (S ou N): ')
if opcao.upper() == 'S':
resposta = input('Digite o nome da palavra: ')
if resposta.upper() == palavra:
print('-------- X -------- X --------')
print(f'Parabéns!!\nA Palavra correta é {palavra}! ')
print('-------- X -------- X --------')
break
else:
print('Você errou!')
print(f'A Palavra correta é {palavra}!')
print('-------- X GAME OVER X --------')
break
else:
print('-------- X -------- X --------\n')
print(f'Você ainda tem mais {9-int(chances)} chances')
else:
print(f'A letra {letra_digitada} NÃO está contida na frase')
print(pal_secreta)
opcao = input('Você já sabe qual é o nome da palavra? (S ou N): ')
if opcao.upper() == 'S':
resposta = input('Digite o nome da palavra: ')
if resposta.upper() == palavra:
print('-------- X -------- X --------')
print(f'Parabéns!!\nA Palavra correta é {palavra}!')
print('-------- X -------- X --------')
break
else:
print('Você errou!')
print(f'A Palavra correta é {palavra}!')
print('-------- X GAME OVER X --------')
break
else:
print(f'Você ainda tem mais {9-int(chances)} chances')
print('-------- X -------- X --------\n')
chances +=1
if chances >= 10:
print('-------- X GAME OVER X --------')
print(f'A Palavra correta é {palavra}!')
break
jogo_da_forca()