1
resposta

Resolvendo o problema da escolha de nível quando se digita um numero diferente de 1 a 3.

import random

print('***********************************\n')
print('Bem vindo ao jogo de adivinhação!\n')
print('***********************************')

numero_secreto = random.randrange(1, 101)
total_de_tentativas = 3
pontos = 1000
print(numero_secreto)

print('Escolha o nível de dificuldade:')
print('(1) Fácil (2) Médio (3) Difícil\n')
nivel = int(input('Defina o nível: '))
while nivel < 1 or nivel >3:
    print("Por favor, Digite um número de 1 a 3 para escolher a dificuldade: \n")
    print('(1) Fácil (2) Médio (3) Difícil\n')
    nivel = int(input('Defina o nível: \n'))


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

for rodada in range(1, total_de_tentativas + 1):
    print('Tentativa {} de {} '.format(rodada, total_de_tentativas))
    chute = int(input('Digite um número de 1 a 100: '))
    print('Você digitou ', chute)

    if (chute < 1 or chute > 100) and (rodada < total_de_tentativas):
        print('Você deve digitar um número de 1 a 100 \n')
        continue

    acertou = chute == numero_secreto
    maior = chute > numero_secreto
    menor = chute < numero_secreto

    if (acertou):
        print("Você acertou! e fez {} \n".format(pontos))
        break
    else:
        pontos_perdidos = abs(numero_secreto - chute)
        pontos = (pontos - pontos_perdidos)

        if (maior):
            print("Você errou! O seu chute foi maior que o número secreto. \n")
            if (rodada == total_de_tentativas):
                print("O número secreto era {}. Sua pontuação foi de {} \n".format(numero_secreto, pontos))
        elif (menor):
            print("Você errou! O seu chute foi menor que o número secreto.\n")
            if (rodada == total_de_tentativas):
                print("O número secreto era {}. Sua pontuação foi de {} \n ".format(numero_secreto, pontos))

print('*************************** \n')
print('GAME OVER \n')
print('***************************')
1 resposta

Bom dia Pedro, tudo bem? Espero que sim!

Muito bom, dessa forma o jogador precisará digitar um número válido para conseguir jogar o jogo.

Você poderia usar o While somente uma vez para não repetir os prints e o input do nivel, bastaria iniciar a variável nivel = 0 ou algum valor que entre no loop anteriormente:

nivel = 0

while nivel < 1 or nivel >3:
    print("Por favor, Digite um número de 1 a 3 para escolher a dificuldade: \n")
    print('(1) Fácil (2) Médio (3) Difícil\n')
    nivel = int(input('Defina o nível: \n'))

Bons estudos!