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

Dúvida quanto as variáveis ENFORCOU e ACERTOU

Alguém saberia me explicar porque eu devo utilizar " while(not enforcou and not acertou) " e não somente "while(not enforcou)" ? Isso porque se ele se enforcou, é porque não acertou, não? Estou com essa dúvida básica..


def jogar():
    print("-=-"*20)
    print("Jogo de Forca!")
    print("-=-"*20)

    palavra_secreta = "banana"

    enforcou = False
    acertou = False

    while(not enforcou and not acertou):

        chute = str(input("Qual letra? ").lower())

        index = 0 #posicao = 0
        for letra in palavra_secreta:
            if chute == letra:
                print("Encontrei a letra {} na posição {}!".format(chute, index))
            index = index + 1


        print("Jogando...")



    print("FIM DO JOGO")

if (__name__ == "__main__"):
    jogar()
2 respostas
solução!

Benicio,

Esta sendo utilizado "(not enforcou and not acertou)" pois o loop deve ser encerrado em duas situações.

1 - Quando acabar as vidas e terminar enforcado.

2 - Quando acertar a palavra secreta.

Caso utilize "(not enforcou)" o loop vai continuar mesmo após acertar a palavra secreta.

Ahhh entendi!!! Enquanto as duas variáveis mantiverem os seus valores booleanos, o WHILE continuará como TRUE. Assim que uma das variáveis mudar, seja morrendo ou acertando, pelo fato de estar relacionadas com um operador lógico AND, o valor do WHILE mudará para FALSE fazendo o loop parar!!

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