1
resposta

Por que esse loop de boolean não está quebrando?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Você diz porque não tá interrompendo quando as tentativas acabam? O teste de tentativas só é feito quando o teste anterior é falso, ou seja, quando acontece o acerto.

Pra corrigir tem que tirar esse teste da cadeia de testes:

if chute != numero_secreto:
    tentativas -= 1
    # print('errou')
    tipo_de_erro(chute, numero_secreto)
else:
    print('venceu')
    venceu = False

if tentativas == 0:
    print('acabou')
    perdeu = False

Ou testar junto:

if chute != numero_secreto and tentativas != 0:
    tentativas -= 1
    # print('errou')
    tipo_de_erro(chute, numero_secreto)
elif  chute != numero_secreto and tentativas == 0:
    print('acabou')
    perdeu = False
else:
    print('venceu')
    venceu = False