Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Selecionando Nível da Partida

Da forma exposta na aula, temos a seguinte situação, se o usuário digitar "0" ou maior que "3" nível difícil, em meu entendimento não fica tão coerente prosseguir a programão se o usuário burla uma instrução, por mais simples que ela seja. Tentei de vária formas, com o pouco conhecimento, fazer com o que ao usuário digitar um numero invalido retorne a instrução para seleção correta do nível, no entanto de todas as formas que tentei a variável "total_de_tentativas = 0" finalizando assim o jogo sem conseguir fazer com que o usuário selecione o nível desejado e inicie a partida. Gostaria de uma forma de implementar tal rotina de forma a continuar a partida.

2 respostas
solução!

Oi Thiago, tudo bem com você?

Ótima pergunta!

No caso do código implementado pelo professor, quando o usuário digita algum número maior que 3 ou até mesmo o 0(ou valores menores), automaticamente têm-se um número de tentativas igual a 5.

Porém, caso quiséssemos permitir ao usuário digitar apenas os números 1, 2 ou 3, podemos fazer um loop que irá se repetir enquanto o usuário digitar valores diferentes dos aceitos. A ideia é que façamos o seguinte:

  • Usuário digitou o número 0 --> então vamos pedir para que ele digite o número novamente, pois 0 não é um número aceito.

  • Usuário digitou o número 4 --> então vamos pedir para que ele digite o número novamente, pois 4 não é um número aceito.

  • Usuário digitou o número -1 --> então vamos pedir para que ele digite o número novamente, pois -1 não é um número aceito.

  • Usuário digitou o número 1 --> perfeito, o número 1 é um número aceito, então podemos continuar a execução do programa.

Em código, podemos fazer um loop (while) que irá se repetir enquanto os valores digitados pelo usuário for diferente de 1, 2 ou 3. Veja:

print("Qual o nível de dificuldade?")
print("(1) Fácil (2) Médio (3) Difícil")

nivel = int(input("Defina o nível: ")) # pegamos a primeira entrada do usuário

while nivel != 1 and nivel != 2 and nivel != 3: # verificamos se é uma entrada válida, caso não seja, irá entrar nesse loop e pedir para digitar um valor válido
    nivel = int(input("Defina um valor válido para o nível: "))

if(nivel == 1):
    total_de_tentativas = 20
elif(nivel == 2):
    total_de_tentativas = 10
elif(nivel == 3):
    total_de_tentativas = 3

Pegou a ideia?

Qualquer dúvida é só falar, estou a disposição. Abraços e bons estudos!

Oi Nádia, tudo ótimo! Estava fazendo um complicação danada testando maiores e menores, e somente no final retornando ao loop, desta maneira é bem mais simples e objetivo. Muito Obrigado, tenha um bom dia!