Olá resolvi brincar um pouco com a linguagem e fiz minha versão do jogo com pontos e recursividade caso ganhe!
Separei em dois arquivos para ficar melhor a compreensão.
'/forca/functions.py'
def logout(kick):
if (kick == "sair" or kick == "exit"):
print("\nSaindo...\n")
return True
def win(secret_word, rightLetters):
if (len(secret_word) == len(rightLetters)):
print(
f"\nParabéns, você acertou, a palavra é '{secret_word.capitalize()}'\n")
return True
def lose(chances, word):
if (chances == 0):
print(f"\nVocê foi enforcado, a palavra era {word}\n")
return True
def kick():
chute = str(input("Qual letra? "))
return chute.strip() and chute.lower()
def chanceShow(chances, wrongLetters):
if (chances < 7):
print(f"Vocé ainda tem {chances} chances de acertar.\n")
print(f"Letras erradas:\n{wrongLetters}\n")
def moreThanOneLetter(kick):
if (len(kick) > 1):
print("\nVocê deve digitar apenas uma letra.\n")
return True
forca.py
from random import randrange
from forca_utils.functions import chanceShow, kick, moreThanOneLetter, logout, win, lose
def play():
print('*****************************************')
print('****** Bem-vindo ao jogo da Forca *******')
print('*****************************************')
print('*** Para sair digite "sair" ou "exit" ***')
fruits = ["banana", "maça", "uva", "pera", "morango",
"abacaxi", "goiaba", "melancia", "laranja"]
secret_word = fruits[randrange(0, fruits.__len__())]
secret_word_array = list(secret_word.__len__() * "-")
play = bool(True)
rightLetters = []
wrongLetters = []
chances = 7
points = 0
while (play):
if lose(chances, secret_word):
break
print(f"\nPalavra Secreta:\n{secret_word_array}\n")
if win(secret_word, rightLetters):
points += 1
print(f"Você tem {points} pontos\n")
rightLetters = []
wrongLetters = []
chances = 7
secret_word = fruits[randrange(0, len(fruits))]
secret_word_array = list(len(secret_word) * "-")
continue
chanceShow(chances, wrongLetters)
chute = kick()
if logout(chute):
break
if moreThanOneLetter(chute):
continue
index = 0
for letra in secret_word:
if (chute == letra):
secret_word_array[index] = letra
rightLetters.append(letra)
index += 1
if (chute not in secret_word and chute not in wrongLetters):
wrongLetters.append(chute)
chances -= 1
if (__name__ == '__main__'):
play()