1
resposta

Limitar input do nível de dificuldade

O user pode acabar fazendo um input diferente dos possíveis (1, 2 e 3). Por isso, optei por limitar esse input para que não ocorram erros no jogo.

print("(1)Fácil (2)Médio (3)Difícil")

while True:
    nivel = int(input("Defina o nível: "))
    if (nivel == 1):
        total_de_tentativas = 20
        break
    elif (nivel == 2):
        total_de_tentativas = 10
        break
    elif (nivel == 3):
        total_de_tentativas = 5
        break

Fiz assim e deu certo, só que queria saber se existe alguma maneira de fazer de forma mais simples.

1 resposta

A lógica do código original por si só já "limita" as opções para o usuário, visto que qualquer outro valor diferente de 1, 2 ou 3 não irá atribuir nenhum valor para a variável "total_de_tentativas" e assim, o jogo não inicia. No caso aqui, o que foi adicionado foi um loop que sempre execute essa etapa de input do usuário caso ele não coloque essa entrada. A diferença entre os dois? No original se o usuário colocar qualquer entrada inválida, o jogo não inicia e o programa se encerra. No seu aprimoramento, o jogo fica em um loop infinito até que o usuário coloque uma entrada válida, assim, não encerrando a aplicação após uma entrada inválida.