Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
1
resposta

Minha única dúvida é, por que o if(__name__ == "__main__"): jogar() no final do código, eu entendi que "jogar()" é a função que criamos (no caso o código) mas não entendi esse if e o que sucede ele.

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

palavraSecreta = 'banana'.upper()
letrasAcertadas = ["_", "_", "_", "_", "_", "_"]

enforcou = False
acertou = False
erros = 0

print(letrasAcertadas)

while(not enforcou and not acertou):

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

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

    enforcou = erros == 6
    acertou = '_' not in letrasAcertadas
    print(letrasAcertadas)

if(acertou):
    print('Você ganhou!!!')
else:
    print('Você perdeu.')
print("Fim do jogo")

if(name == "main"): jogar()

1 resposta
solução!

E aí, Gabriel. Beleza?

Essa condição serve para verificar se esse código está sendo executado pelo próprio arquivo. Nós podemos, por exemplo, querer que parte desse jogo seja usada em outro sistema e, para reaproveitar código, podemos importar o jogo dentro desse outro sistema sem necessariamente querer que ele seja executado.

Nesse caso, tudo o que estiver fora dessa cláusula será executado quando fizer o import, mas a função que inicia o jogo só será executada se o arquivo em si for executado.

Espero ter ajudado.

Abraço.