Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Meu Código está idêntico ao do professor, no entanto não roda.

def jogar():

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

    palavra_secreta = "banana".upper()
    letras_acertadas = ["_", "_", "_", "_", "_", "_"]

    enforcou = False
    acertou = False
    erros = 0

    print(letras_acertadas)

    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

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


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

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


no entanto, aparece:

Process finished with exit code 0

ou seja o jogo não roda, como no caso do professor, ele só roda se executado diretamente nos jogos.py, como faço para roda-lo independente também?

2 respostas
solução!

Oii Lucas, como você está?

Isso está ocorrendo por causa da indentação, ou seja, os recuos para reforçar a estrutura do código, evidenciando dessa forma qual trecho está dentro de qual.

No caso do seu código precisamos recuar a esquerda o trecho:

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

Pois esse trecho não pertence a função jogar().

Código com a indentação corrigida:

def jogar():

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

    palavra_secreta = "banana".upper()
    letras_acertadas = ["_", "_", "_", "_", "_", "_"]

    enforcou = False
    acertou = False
    erros = 0

    print(letras_acertadas)

    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

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


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

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

"como faço para roda-lo independente também?"

Você diz executá-lo em outro arquivo? Seria isso?

Fico no aguardo de sua resposta.

Olá Nádia, muito obrigado! de fato esse era o único problema!, quando disse "rodar independente", disse roda-lo, sem precisar chamar no jogos.py, no qual se chamava um numero 1 ou 2 e rodava um jogo, no caso pensei que houvesse um erro grave no meu código, mas no caso era só a identação mesmo, obrigado!.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software