Usando as funcionalidades do while, escrevi esse código para o jogo:
import random
secret_num = random.randint(1,10)
attempts = 10
turn = 1
print("Guess the number! Type a number and try finding the secret number.")
print(f"You have {attempts} attempts")
guess = int(input(f"[Turn nº{turn}] Type a number: "))
while attempts >= 0:
if guess == secret_num:
print(f"You typed {guess} and got the correct secret number!")
print("Congratulations!")
break
elif guess > secret_num and attempts > 0:
attempts -= 1
turn += 1
print(f"You typed {guess}, but it is an incorrect answer. Try something smaller")
print(f"You now have {attempts} attempts")
guess = int(input(f"[Turn nº{turn}] Type a number: "))
elif guess < secret_num and attempts > 0:
attempts -= 1
turn += 1
print(f"You typed {guess}, but it is an incorrect answer. Try something bigger")
print(f"You now have {attempts} attempts")
guess = int(input(f"[Turn nº{turn}] Type a number: "))
elif attempts == 0:
print("You lost.")
break
Entretanto, observei que o jogo se segue por 11 turnos ao invés de 10, que seria o que eu tinha em mente durante a minha escrita do código.
Por qual motivo esse loop estaria se repetindo mais de 10 vezes e como eu posso fazer para resolver esse problema?