Repare que no codigo , se voce insere um numero invalido, ou seja , < 1 e > 100 voce queima suas tentativas, e creio que nao deveria pois o numero digitado foi invalido. O contador de tentativas tem que zerar nesse caso. Como resolver isso ? Consegui criando uma class chamada MyRange e chamando no for...
Sera que teria algum jeito mais simples ? Da maneira que fiz funciona bem
class myRange:
def restartFrom(self, start):
self.start = start
def get(self, start, end):
self.start = start
while self.start != end:
yield self.start
self.start += 1
myRange = myRange()
secret_number = 42
attempts = 3
interval = 100
for rodada in myRange.get(1,attempts+1):
print("Tentativa {} de {}".format(rodada,attempts))
advinha_str = input("Digite número entre 1 e 100: ")
print("Voce digitou :", advinha_str)
advinha = int(advinha_str)
if (advinha < 1 or advinha > 100 ):
print("Voce deve digitar um numero entre 1 e 100")
myRange.restartFrom(0)
continue
if (secret_number == advinha):
print ("you gotta!")
break
else:
if (advinha > secret_number):
print ("Voce digitou um numero maior!")
elif (advinha < secret_number):
print("Voce digitou um mumero menor!")
print("fim de jogo")