O professor mostrou uma situação caso o jogador botasse um numero fora do exigido. Tal situação, em que o usuário perde uma jogada. Com o ficaria o código sem que o jogador perdesse a vez?
O professor mostrou uma situação caso o jogador botasse um numero fora do exigido. Tal situação, em que o usuário perde uma jogada. Com o ficaria o código sem que o jogador perdesse a vez?
Oii Ricardo, como você está? Espero que esteja bem ^-^
Curiosidades são sempre bem-vindas, obrigada por postar a sua por aqui.
Podemos fazer um laço de repetição que force o usuário a digitar um número dentro dos parâmetros exigidos e caso o número não esteja nos parâmentros, o código irá se repetir até que o número digitado seja válido. Sendo assim, só irá para a próxima jogada quando um número válido for digitado. Veja como fica:
while(chute < 1 or chute > 100):
print("Você deve digitar um número entre 1 e 100!")
chute_str = input("Digite um número entre 1 e 100: ")
print("Você digitou " , chute_str)
chute = int(chute_str)
Resultado:
*********************************
Bem vindo ao jogo de Adivinhação!
*********************************
Tentativa 1 de 3
Digite um número entre 1 e 100: 90
Você digitou 90
Você errou! O seu chute foi maior do que o número secreto.
Tentativa 2 de 3
Digite um número entre 1 e 100: 300
Você digitou 300
Você deve digitar um número entre 1 e 100!
Digite um número entre 1 e 100: 0
Você digitou 0
Você deve digitar um número entre 1 e 100!
Digite um número entre 1 e 100: -1
Você digitou -1
Você deve digitar um número entre 1 e 100!
Digite um número entre 1 e 100: 40
Você digitou 40
Você errou! O seu chute foi menor do que o número secreto.
Tentativa 3 de 3
Digite um número entre 1 e 100: 42
Você digitou 42
Você acertou!
Fim do jogo
Observe que na tentativa 2 de 3 digitamos o número 300, após isso, o número 0 e logo em seguida, o -1, e apenas quando digitamos um número válido dentro dos parâmetros (número 40) que passamos para a tentativa 3 de 3.
Veja como fica o código completo após essa alteração (substituímos o if que havia no código pelo while):
print("*********************************")
print("Bem vindo ao jogo de Adivinhação!")
print("*********************************")
numero_secreto = 42
total_de_tentativas = 3
for rodada in range(1, total_de_tentativas + 1):
print("Tentativa {} de {}".format(rodada, total_de_tentativas))
chute_str = input("Digite um número entre 1 e 100: ")
print("Você digitou " , chute_str)
chute = int(chute_str)
while(chute < 1 or chute > 100):
print("Você deve digitar um número entre 1 e 100!")
chute_str = input("Digite um número entre 1 e 100: ")
print("Você digitou " , chute_str)
chute = int(chute_str)
acertou = chute == numero_secreto
maior = chute > numero_secreto
menor = chute < numero_secreto
if(acertou):
print("Você acertou!")
break
else:
if(maior):
print("Você errou! O seu chute foi maior do que o número secreto.")
elif(menor):
print("Você errou! O seu chute foi menor do que o número secreto.")
print("Fim do jogo")
Qualquer dúvida estou por aqui.
Abraços e bons estudos!