import random
print("Bem vindo ao jogo de adivinhação")
numero_secreto = random.randrange(1, 101)
tentativas = 0
print("Qual nível de dificuldade?")
print("(1) Fácil (2) Médio (3)Difícil ")
nivel = int(input("Defina um nível: "))
if(nivel == 1):
tentativas = 20
elif(nivel == 2):
tentativas = 10
else:
tentativas = 5
for rodada in range(1, tentativas + 1):
print("Tentativa {} de {}".format(rodada, tentativas))
chute = input("Digite um número entre 1 e 100 ")
print("O seu chute foi: " + chute)
chute = int(chute)
if(chute < 1 or chute > 100):
print("Você deve digitar um número entre 1 e 100")
continue
acertou = chute == numero_secreto
maior = chute > numero_secreto
menor = chute < numero_secreto
if(acertou):
print("Você acertou!!")
break
else:
if(maior):
print("Que pena você errou o número secreto é menor que o seu chute")
elif(menor):
print("Que pena você errou o número secreto é maior que o seu chute")
rodada = rodada + 1
print("O número secreto era: {}".format(numero_secreto))
print("fim de jogo")
Tem algo que está me incomodando muito mesmo nesse código do jogo de adivinhação, que são os ifs. É correto sempre que tivermos que validar algo, como no exemplo, colocarmos ifs?
Tipo vamos pensar, sempre que colocarmos um novo parâmetro ou uma nova regra de negocio teremos que criar mais um if ou elif, e agora se tivermos 100 regras diferentes para implementar, seria correto colocar cada uma delas dentro de um if/elif?
E teria algum modo de fazer que esse jogo de o mesmo resultando, porém sem ter que usar os ifs ou até diminuindo eles?