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

Minha solução para o jogo da forca

Boa noite! Tem alguns comentários para facilitar na hora de eu mesma ler e não me perder com facilidade. Espero que ajude... Se alguem tiver algo a acrescentar, fico contente pela contribuição.

def jogar():
    #estrutura do cabeçalho
    print("***************************************")
    print("Bem-vindo ao nosso jogo de forca!")
    print("***************************************")

    #sobre a palvara secreta
    palavra_secreta = "banana".upper()
    letras_acertadas = ["_", "_", "_", "_", "_", "_"]

    enforcou = False
    acertou = False
    erros = 6

    #para que apareça quantas letras possui a palavra
    print(letras_acertadas)

    #enquanto nao enforcou e nao acertou continua o jogo, inicia-se com afirmação sempre em falsa
    while(not enforcou and not acertou):
        chute = input("Qual letra você chutará?")
        chute = chute.strip().upper() #retira os espaços entre caracteres e letras maiusculas
        if(chute in palavra_secreta):
            index = 0 #o inicio
            print("Você acertou o seu palpite!")
            for letra in palavra_secreta: #quando letra em palavra secreta
                if (chute == letra):
                    letras_acertadas[index] = letra
                index += 1 #incremento
        else:
            erros -= 1
            print("Você errou! Faltam {} tentativas.".format(erros))

        enforcou = erros == 0
        acertou = "_" not in letras_acertadas #para acabar o jogo se caso o jogador acerte a palavra
        print(letras_acertadas) #para imprimir a letra chutada, caso ela seja um acerto

        if(erros == 0):
            break
            print("Você perdeu!")


    print("Fim de jogo!")

if(__name__ == "__main__"): #para que possa ser visto no console
    jogar()
1 resposta
solução!

Olá Desirée, tudo bem com você?

Meus parabéns pela implementação do código, fico feliz que tenha compartilhado no fórum. Quero aproveitar o momento e passar uma recomendação sobre o código apresentado, referente a última estrutura condicional if dentro do laço while, representado abaixo.

if(erros == 0):
    break
    print("Você perdeu!")

Quando usamos a instrução break estamos informando que naquele momento o laço while deve ser interrompido, com essa interrupção do laço a mensagem “Você perdeu!” não será impressa no console já que o laço está sendo interrompido antes da impressão.

Para que ela seja impressa basta realizarmos a inversão das linhas, fazendo com que primeiramente ocorra a impressão e logo após o laço seja interrompido. Ficando como apresentado abaixo.

if(erros == 0):
    print("Você perdeu!")
    break

Para aprimorar ainda mais o seu aprendizado, recomendo a leitura do seguinte artigo, onde será apresentado com detalhes sobre a iteração da instrução break com o laço de repetição while.

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

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.