1
resposta

Minha solução

Minha solução ficou desta forma, bem como algumas coisas a mais que eu implementei no código:

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

    palavra_secreta = "familia".upper()
    letras_acertadas = ['_','_','_','_','_','_','_',]
    letras_faltando = str(letras_acertadas.count('_')) #determina variável de quantidade de letras faltantes, para atualizar deve ter uma no laço

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

    print(letras_acertadas)
    print("você tem {} tentativas".format(tentativas))

    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 == letra):
                    letras_acertadas[index] = letra
                    letras_faltando = str(letras_acertadas.count('_')) #conta dentro do laço quantas letras faltam
                index += 1
        else:
            erros += 1

        enforcou = erros == 6
        acertou = '_' not in letras_acertadas
        print(letras_acertadas) #mostra as letras acertadas
        print("Você errou {} vezes de {} tentativas".format(erros, tentativas))#mostra quantidade de erros e tentativas totais
        print("Ainda faltam acertar {} letras".format(letras_faltando))  # mostra quantas letras faltam

    if(acertou):
        print("Parabéns! Você acertou :-)")
    else:
        print("Que pena! Você perdeu :-(")

    print("***************")
    print("* Fim de Jogo *")
    print("***************")

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

Olá Evandro, tudo bem com você?

Meus parabéns pelo desenvolvimento, adicionar a contagem de letras restantes foi uma boa ideia de implementação do código, fico feliz que tenha compartilhado com a comunidade do fórum Alura.

Gostaria de aproveitar a oportunidade de sugerir outra implementação para o código, podemos implementar no cabeçalho com o uso da multiplicação de strings; quando queremos que uma determinada string seja repetida basta multiplicarmos ela, sabendo disso podemos implementar no cabeçalho do seu código, como abaixo.

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

No código acima, a string "*" será repetida 35 vezes.

Caso queira explorar mais funções sobre o uso do asterisco em Python, além de duplicar caracteres, recomendo o seguinte artigo:

O artigo acima está em inglês, caso tenha dificuldades com o idioma recomendo o uso do tradutor do navegador.

Fico à disposição em caso de dúvidas.

Abraços e bons estudos.