Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

while (responder, uma questão de carinho)

Olá,

Não compreendi a lógica contida no while.

O jogador continua jogando enquanto (while)

1 - Não enforcou ----- enforcou = False

2 - Não acertou ------ acertou = False

o código então é assim:

enforcou = False
acertou = False
while (not enforcou and not acertou):
    //Restante do código//

Na minha leitura o código acima diz:

Rode o loop desde que ambas as variáveis sejam not false (true).

enforcou = True

acertou = True

Mas se enforcou e acertou forem verdadeiras isso não qualifica o jogador para continuar.

Obrigado

2 respostas

Oi, Lucas. A lógica é a seguinte: o jogador deverá continuar jogando até que I) acabem suas vidas (enforcou) ou II) ele acerte todas as letras (acertou). Se todas as suas tentativas acabarem e a palavra não tiver sido encontrada, enforcou receberá True, cancelando o laço while. Se a palavra for encontrada, acertou receberá True, também encerrando o laço.

Em outras palavras, enquanto "não enforcou" e "não acertou", o laço continuará rodando.

Bons estudos.

Em um exemplo se diz

while (número <= 3):
    // código //
x = False
y = False
while (not x and not y):
    // código //

Ou seja se x e y não forem falsos ou seja se forem VERDADEIROS rode o jogo.

Mais uma vez, não ser falso é ser verdadeiro certo ? Mas se for verdadeiro o código não pode rodar porque o jogador acertou ou enforcou.

Novamente foi atribuído False para ambas as variáveis, not False é igual a True mas se isso ocorrer o jogador ou venceu ou enforcou .

Continuo, logo teria sentido se para ele continuar jogando a lógica fosse ENQUANTO ACERTOU E ENFORCOU NAO FOR VERDADEIRO ou ENQUANTO ACERTOU E ERRO FOREM FALSOS rode o código.

De novo, o professor colocou no código

Enquanto ( not False and not False)

Enquanto ( True and True)

Mas se ambos forem True o jogador não poderia jogar, a lógica deveria ser inversa.

Para finalizar, não ser falso é ser verdadeiro e verdadeiro é condicional para não rodar o código.

Obrigado