Bom eu gostaria de fazer um plus no meu código, no caso gostaria que na dificuldade ele aceitasse apenas os valores (1), (2) e (3). Caso o usuário coloque 10 como input o programa enviasse uma mensagem dizendo "Entrada inválida, tente novamente!", com isso ele voltaria para o inicio do programa. |Gostaria de saber a opinião do grupo a respeito disso.
Parte do código que estou alterando: (o valor total_de_tent não está funcionando)
def retornar():
print("Níveis de dificuldade:")
print("(1)Fácil, (2)Médio, (3)Difícil")
nivel = int(input('Qual o nível desejado?'))
if (nivel == 1):
total_de_tent = 20
elif (nivel == 2):
total_de_tent = 10
elif (nivel == 3):
total_de_tent = 5
else:
print('Número informado inválido!')
return retornar()
retornar()
Meu código completo:
import random
def jogar():
print('===================================')
print('Bem-Vindo ao jogo de Adivinhação!')
print('===================================')
numero_secreto = random.randrange(1,101)
total_de_tent = 0
pontos = 1000
def retornar():
print("Níveis de dificuldade:")
print("(1)Fácil, (2)Médio, (3)Difícil")
nivel = int(input('Qual o nível desejado?'))
if (nivel == 1):
total_de_tent = 20
elif (nivel == 2):
total_de_tent = 10
elif (nivel == 3):
total_de_tent = 5
else:
print('Número informado inválido!')
return retornar()
retornar()
print(numero_secreto)
for rodada in range(1, total_de_tent + 1):
print('Tentativa {} de {}'.format(rodada, total_de_tent))
chute_str = input('Digite o seu número: ')
print('Você chutou o número', chute_str, '.. . .')
chute = int(chute_str)
if(chute < 1 or chute > 100):
print("Você deve digitar um número entre 1 e 100!")
continue
maior = numero_secreto < chute
menor = numero_secreto > chute
acertou = numero_secreto == chute
if acertou:
print("Você acertou e fez {} pontos!".format(pontos))
break
else:
pontos_perdidos = round(abs(numero_secreto - chute) / 3)
pontos = pontos - pontos_perdidos
if maior:
print('Vish seu chute foi maior que o número secreto')
if (rodada == total_de_tent):
print("O número secreto era {}. Você fez {}".format(numero_secreto, pontos))
elif menor:
print('Opa seu chute foi menor que o número secreto!')
if (rodada == total_de_tent):
print("O número secreto era {}. Você fez {}".format(numero_secreto, pontos))
print('Fim de jogo!')
if(__name__ == "__main__"):
jogar()
Desde já agradeço o auxílio, caso descubra uma forma de corrigir esse problema, irei responder o tópico como concluído e anexar a solução!