1
resposta

[Dúvida] tentativa não repete quando numero é negativo

Quando eu coloco um número inválido (negativo ou maior que 100), o número de tentativas continua aumentando e eu gostaria de que ele continuasse o mesmo. Já que no código eu utilizo o CONTINUE

import random

print("*********************************")
print("Bem vindo ao jogo de adivinhação!")
print("*********************************")

numero_secreto = random.randrange(1, 101)
pontos = 1000

nivel = int(input("\nEscolha um nivel: 1 - facil, 2 - medio, 3 - difícil\n"))

if (nivel == 1):
    total_tentativas = 15
elif (nivel == 2):
    total_tentativas = 10
elif (nivel == 3):
    total_tentativas = 5
else:
    print("Opção inválida!")

for rodada in range(1, total_tentativas + 1):
    print(f"\nTENTATIVA {rodada} de {total_tentativas}\n")
    chute = int(input("Digite seu chute: "))

    if (chute < 1) or (chute > 100):
        print("Digite um número de 1 a 100!")
        continue

    acertou = chute == numero_secreto
    maior = chute > numero_secreto

    if (acertou):
        print(f"Parabéns, você acertou e fez {pontos}!\n")
        break
    else:
        if (maior):
            print("Você errou! Seu chute é maior que o numero secreto.\n")
        else:
            print("Você errou! Seu chute é menor que o numero secreto.\n")

        pontos_perdidos = abs(numero_secreto - chute)
        pontos -= pontos_perdidos

        if rodada == total_tentativas:
            print(f"Voce perdeu. O numero secreto era {numero_secreto} e voce fez {pontos}")

print("Fim de jogo!")
1 resposta

Grande Yasmina. Tudo certo? Bom, pelo que se pode ver o número de tentativas ao qual você se refere, é contado pelo iterador rodada do laço for, não é isso? Nesse caso o comando continue não vai impedir a incrementação desse iterador e, sim, vai apenas ignorar todo comando que está dentro do laço for e que aparece logo após ao comando continue seguindo para a próxima iteração até as iterações acabarem. Espero que tenha entendido e compreendido.