Skip to content

Instantly share code, notes, and snippets.

@tuxcuiabano
Created December 23, 2014 01:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tuxcuiabano/4f14a591c1455e23be8c to your computer and use it in GitHub Desktop.
Save tuxcuiabano/4f14a591c1455e23be8c to your computer and use it in GitHub Desktop.
[Python] Forca - Livro Simon Monk
import random
palavras = ['frango','cachorro','gato','rato','sapo']
vidas_restantes = 14
letras_advinhadas=''
def escolhe_palavra():
posicao_palavra = random.randint(0, len(palavras)-1)
return palavras[posicao_palavra]
def jogar():
palavra = escolhe_palavra()
while True:
palpite = pega_palpite(palavra)
if processa_palpite(palpite, palavra):
print('Parabéns, você ganhou')
break
if vidas_restantes == 0:
print('Você perdeu')
print('A palavra era: ' + palavra)
break
def pega_palpite(palavra):
imprime_palavra_com_espaco(palavra)
print('Vidas Restantes: '+ str(vidas_restantes))
palpite = input('Digite uma letra ou uma palavra: ')
return palpite
def imprime_palavra_com_espaco(palavra):
mostra_palavra=''
for letra in palavra:
if letras_advinhadas.find(letra) > -1:
#letra encontrada
mostra_palavra = mostra_palavra + letra
else:
#letra não encontrada
mostra_palavra = mostra_palavra + '-'
print (mostra_palavra)
def processa_palpite(palpite, palavra):
if len(palpite) > 1:
return advinha_palavra_inteira(palpite, palavra)
else:
return advinha_apenas_letra(palpite, palavra)
def advinha_apenas_letra(palpite, palavra):
global letras_advinhadas
global vidas_restantes
if palavra.find(palpite)== -1:
#letra errada
vidas_restantes = vidas_restantes - 1
letras_advinhadas = letras_advinhadas + palpite
if todas_letras_advinhadas(palavra):
return True
def todas_letras_advinhadas(palavra):
for letra in palavra:
if letras_advinhadas.find(letra) == -1:
return False
return True
def advinha_palavra_inteira(palpite, palavra):
global vidas_restantes
if palpite.lower()==palavra.lower():
return True
else:
vidas_restantes = vidas_restantes -1
return False
jogar()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment