print(letras_acertadas, "Faltam: ", letras_acertadas.count("_"), " tentativas !! ")
print(letras_acertadas, "Faltam: ", letras_acertadas.count("_"), " tentativas !! ")
*Eu também fiz algumas alterações no codigo: *
from random import choice
def jogar():
global palavra_secreta, dica
print("*" * 34)
print("***Bem vindo ao jogo da Forca!***")
print("*" * 34)
nivel1 = ["banana", "maca", "abacaxi", "pessego", "limao", "uva"]
nivel2 = ["carro", "bicicleta", "caminhao", "carroca", "patins", "moto"]
nivel3 = ["cachorro", "gato", "peixe", "cavalo", "lobo", "zebra"]
nivel = input("Escolha o Nível de 1 a 3: ")
match nivel:
case "1":
palavra_secreta = choice(nivel1).upper()
dica = "Fruta"
case "2":
palavra_secreta = choice(nivel2).upper()
dica = "Meio de Locomoção"
case "3":
palavra_secreta = choice(nivel3).upper()
dica = "Animal"
print(palavra_secreta)
letras_acertadas = []
for letras in palavra_secreta:
letras_acertadas.append("_")
enforcou = False
acertou = False
erros = 0
print(letras_acertadas, "Qtde Tentativas: ", len(letras_acertadas), "Dica: ", dica)
while (not enforcou and not acertou):
chute = input("Qual letra? ")
chute = chute.strip().upper()
if (chute in palavra_secreta):
index = 0
for letra in palavra_secreta:
if (chute.upper() == letra.upper()):
letras_acertadas[index] = letra
index += 1
else:
erros += 1
enforcou = erros == len(palavra_secreta)
acertou = "_" not in letras_acertadas
print(letras_acertadas, "Faltam: ", letras_acertadas.count("_"), " tentativas !! ")
if acertou:
print("Você acertou parabéns")
else:
print("Você errou, que pena!!! ")
print("Fim do jogo")
if (__name__ == "__main__"):
jogar()
Olá Rafael, tudo bem com você?
Peço desculpas pela demora no retorno.
Meus parabéns pela implementação do código adicionando a exibição da mensagem de quantas letras foram acertadas pelo usuário. Fico feliz que tenha compartilhado com a comunidade do fórum Alura.
Gostaria de aproveitar a oportunidade e recomendar uma modificação no código. Quando um usuário acerta ou erra uma das letras, é enviado uma mensagem informando que ainda existe uma determinada quantidade de tentativas restantes, mas, o valor informado não está sendo a quantidade real de tentativas.
Recomendo que crie uma variável com o nome tentativas
para receber a quantidade de tentativas restantes. Neste caso, a variável irá receber o resultado do cálculo do comprimento da palavra secreta menos a quantidade de erros. Como apresentado abaixo.
tentativas = len(palavra_secreta) - erros
Adicione o código acima após a declaração das variáveis enforcou
e acertou
, como abaixo:
enforcou = erros == len(palavra_secreta)
acertou = "_" not in letras_acertadas
tentativas = len(palavra_secreta) - erros
Agora, na mensagem que é apresentada após o usuário informar uma letra, troque letras_acertadas.count("_")
por tentativas
, ficando como apresentado abaixo.
print(letras_acertadas, "Faltam: ", tentativas, " tentativas !! ")
Código completo com as modificações
while (not enforcou and not acertou):
chute = input("Qual letra? ")
chute = chute.strip().upper()
if (chute in palavra_secreta):
index = 0
for letra in palavra_secreta:
if (chute.upper() == letra.upper()):
letras_acertadas[index] = letra
index += 1
else:
erros += 1
enforcou = erros == len(palavra_secreta)
acertou = "_" not in letras_acertadas
tentativas = len(palavra_secreta) - erros
print(letras_acertadas, "Faltam: ", tentativas, " tentativas !! ")
Peço que analise a proposta acima e verifique se faz sentido para seu projeto, caso faça, basta realizar as mudanças nos pontos listados.
Lembre-se que pode contar sempre com o fórum Alura, seja para compartilhar o seu desenvolvimento ou para tirar suas dúvidas.
Fico à disposição.
Abraços e bons estudos.