Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Passando os erros ao jogador.

Olá boa tarde.

Podemos colocar um print de tela após a soma dos erros, conforme código abaixo, pois como temos as tentativas fixas e não temos uma variação de dificuldade igual o jogo da adivinhação, podemos só "printar" para o usuário o numero de tentativas.

   while (not acertou and not enforcou):

        chute = input("Qual letra? ")
        chute = chute.strip().upper()

        if (chute in palavra_secreta):
            index = 0
            for letra in palavra_secreta:
                if (chute == letra):
                    letras_acertadas[index] = letra
                index += 1
        else:
            erros += 1

        print(f"Você utilizou um total de {erros}, das suas 6 tentativas!")

        enforcou = erros == 6
        acertou ="_" not in letras_acertadas

Caso o jogo tenha niveis de dificuldade podemos fazer desta forma!

import Jogos
def jogar():

    print("*********************************")
    print("***Bem vindo ao jogo da Forca!***")
    print("*********************************")

    palavra_secreta = "banana".upper()
    letras_acertadas = ["*" for letra in palavra_secreta]


    enforcou = False
    acertou = False
    erros = 0
    tentativas = 0

    while (tentativas == 0):
        print("Escolha o nivel de dificuldade: [1]- Fácil, [2]-Médio e [3]-Dificil")
        dificuldade = int(input("Dificuldade: "))
        if (dificuldade == 1):
            tentativas = 6
            print(f"Você está jogando na dificuldade [1]- Fácil, você possui {tentativas} tentativas")
        elif (dificuldade == 2):
            tentativas = 3
            print(f"Você está jogando na dificuldade [2]-Médio, você possui {tentativas} tentativas")
        elif (dificuldade == 3):
            tentativas = 2
            print(f"Você está jogando na dificuldade [3]-Dificil, você possui {tentativas} tentativas")
        else:
            print("Digite um valor de dificuldade valido! ")

    while (not acertou and not enforcou):
        nova_palavra = ""
        chute = input("Qual letra? ")
        chute = chute.strip().upper()

        if (chute in palavra_secreta):
            index = 0
            for letra in palavra_secreta:
                if (chute == letra):
                    letras_acertadas[index] = letra
                index += 1
        else:
            erros += 1

        enforcou = erros == 6
        acertou = "*" not in letras_acertadas

        print(f"Você utilizou um total de {erros}, das suas {tentativas} tentativas!")
        for letra in letras_acertadas:
            nova_palavra += letra
        print(nova_palavra)

    if acertou:
        print("Você ganhou o Jogo")
    else:
        print("Você perdeu o jogos! ")

    print("Fim do jogo")

    Jogos.jogar_novamente()

if (__name__ == "__main__"):
    jogar()

OBS: Na logica da forca o erro só é contato quando erramos o letra da forca ! Quando o eu estou passando o valor de tentativas no segundo laço, ele está encerrando o jogo, não está comparando o valor de 'erros', com 'tentativas'

Achei o erro dentro do codigo, fiz algumas substituições e não alterei dentro do segundo while !

1 resposta
solução!

Olá, Gabriel! Tudo bem?

Seu código ficou ótimo! Parabéns.

Ficou com alguma dúvida durante a solução do exercício?

Qualquer dúvida estamos à disposição.

Abraços e bons estudos.