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

O que está errado neste código? sempre que eu executo e chuto a letra aparece a mensagem você perdeu logo abaixo?

import random
def jogar():

    mensagem_abertura()
    palavra_secreta= carrega_palavra_secreta()
    letras_acertadas = inicializa_letras_acertadas(palavra_secreta)
    print(letras_acertadas)

    enforcou = False
    acertou = False
    erros = 0

    while(not enforcou and not acertou):

        chute = pede_chute()

        if(chute in palavra_secreta):
            marca_chute_correto(chute, palavra_secreta, letras_acertadas)

        else:
            erros +=1
            print("Restam {} tentativas".format(6-erros))



        enforcou = erros == 6
        acertou = "_" not in letras_acertadas
        print(letras_acertadas)

        if(acertou):
            mensagem_vencedor()
        else:
            mensagem_perdedor()


def mensagem_vencedor():
    print("Voce ganhou!!")
def mensagem_perdedor():
    print("Voce perdeu!!")

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

def carrega_palavra_secreta():
    arquivo = open("palavras.txt", "r")
    palavras = []
    for linha in arquivo:
        linha = linha.strip()
        palavras.append(linha)

    arquivo.close()

    numero = random.randrange(0, len(palavras))
    palavra_secreta = palavras[numero].upper()

    return palavra_secreta

def inicializa_letras_acertadas(palavra):
    return ["_" for letra in palavra]

def pede_chute():
    chute = input("Qual sua letra? ")
    chute = chute.strip().upper()
    return chute

def marca_chute_correto(chute, palavra_secreta, letras_acertadas):
    index = 0
    for letra in palavra_secreta:
        if (chute == letra):
            letras_acertadas[index] = letra
        index += 1



if(__name__ == "__main__"):
    jogar()
1 resposta
solução!

Oi, Igor

Tire o "if" de dentro do "while"

    while(not enforcou and not acertou):

        chute = pede_chute()

        if(chute in palavra_secreta):
            marca_chute_correto(chute, palavra_secreta, letras_acertadas)

        else:
            erros +=1
            print("Restam {} tentativas".format(6-erros))



        enforcou = erros == 6
        acertou = "_" not in letras_acertadas
        print(letras_acertadas)
        # fim do while
   
    if(acertou):
        mensagem_vencedor()
    else:
        mensagem_perdedor()