Oii Bruno, tudo bem?
Quando estamos trabalhando com while no Python, devemos saber que esse bloco de repetição irá reproduzir o bloco de código localizado dentro dele, enquanto esse bloco manter a condição do while como verdadeira. Ou seja, precisamos escrever o código para que dentro do laço a condição de funcionamento se torne falsa, ou o while jamais será finalizado (entra em loop infinito). No caso do seu código, não há limitação de tentativas, ou seja, o while irá continuar até o momento que alguém acertar o valor do chute. Seria essa a sua intenção?
Adiante, as variáveis que servem de condicionais para seu if e elif
se encontram fora do seu while, ou seja, elas não serão alteradas caso o valor de chute seja mudado, por isso, sempre que for modificado o valor do chute, ele vai considerar o primeiro valor apenas no condicional. Um modo de corrigir isso seria colocando elas, assim como seu primeiro if, dentro do while, da seguinte forma:
print('\033[0:30:41mBem vindo ao jogo de adivinhação!!!\033[m')
numero_secreto = 7
chute = int(input("Qual o numero que você acha que é:"))
acertou = (numero_secreto == chute)
if (acertou):
print('Você acertou, parabénsss!!')
while (numero_secreto != chute):
acertou = (numero_secreto == chute)
maior = (numero_secreto < chute)
menor = (numero_secreto > chute)
if (acertou):
print('Você acertou, parabénsss!!')
else:
print("Você errou!")
if (menor):
print("O número que você escolheu é \033[0:30:41mMENOR\033[m que o número secreto!")
elif (maior):
print("O número que você escolheu é \033[0:30:41mMAIOR\033[m que o número secreto!")
chute = int(input("Qual o número que você acha que è:"))
print("Fim do jogo.")
Mas perceba que o código está repetitivo. Uma dica que eu deixo para você é determinar um número limite de tentativas, assim, o seu código não corre o risco de entrar em loop infinito caso você não tenha conhecimento do valor correto do número secreto e também diminui a repetição de códigos, mantenho o seu algoritmo mais direto. Um modo de se fazer isso é da seguinte forma:
print('\033[0:30:41mBem vindo ao jogo de adivinhação!!!\033[m')
numero_secreto = 42
total_de_tentativas = 3
rodada = 1
while(rodada <= total_de_tentativas):
print("Tentativa {} de {}:".format(rodada, total_de_tentativas))
chute = int(input("Digite o seu número: "))
acertou = numero_secreto == chute
maior = chute > numero_secreto
menor = chute < numero_secreto
if(acertou):
print("Você acertou, parabénsss!!")
else:
if(maior):
print("O número que você escolheu é \033[0:30:41mMAIOR\033[m que o número secreto!")
elif(menor):
print("O número que você escolheu é \033[0:30:41mMENOR\033[m que o número secreto!")
rodada = rodada + 1
print("Fim de Jogo")
Assim, seu código fica mais direto e mais seguro :)
Em caso de dúvidas, me coloco à disposição.
Grande abraço e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!