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

código do jogo de adivinhação

Ao final do código do jogo de adivinhação foram definidos 3 níveis e você pode inserir dizer 1- fácil, 2- médio e 3 difícil. No entanto, se você digitar um número maior que 3, como por exemplo 4 ou +, o jogo continuará adotando como se você quisesse o nível três. Portando gostaria de saber uma condição para o programa só deixar inserir um nível entre 1 e 3.

import random


print("*********************************")
print("bem vindo ao jogo de adivinhação!")
print("*********************************")

numero_secreto = random.randrange(0, 101)
total_de_tentativas = 0
pontos = 1000
#print(numero_secreto)

print("Qual o nível de dificuldade?")
print("[1] Fácil [2] Médio [3] Difícil")
nivel = int(input("Defina um nível: "))

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



for rodadas in range (1, total_de_tentativas + 1):
    print("tentativas {} de {}".format(rodadas, total_de_tentativas))

    chute_str = input("Digite o seu número: ")
    #print("você digitou", chute_str)
    chute = int(chute_str)

    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 e fez {} pontos :)".format(pontos))
        break

    else:
        if(maior):
            print("você errou! o seu chute foi maior que o numero secreto")
        elif(menor):
            print("você errou! o seu chute foi menor que o numero secreto")
        pontos_perdidos = abs(numero_secreto - chute)
        pontos = pontos - pontos_perdidos


    print("fim do jogo!")
3 respostas

Olá Arielson!

Isso acontece pois seu código está assim:

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

Você define no "else" que o "total_de_tentativas" é igual a três. Isso fará com que qualquer numero digitado que seja diferente de 1 ou 2 irá definir a variável como 3 (inclusive se você digitar um texto).

Para você alterar isso é necessário incluir mais um if para capturar o nível 3 e um else para capturar qualquer outro valor não importante.

if(nivel == 1):
    total_de_tentativas = 10
elif(nivel == 2):
    total_de_tentativas = 5
elif(nivel == 3)
    total_de_tentativas = 2
else:
    print("Opção incorreta")

Espero que tenha ajudado!

Bons estudos! ^^

Obg Guilherme!!

while total_de_tentativas == 0:
    print("Qual o nível de dificuldade?")
    print("[1] Fácil [2] Médio [3] Difícil")
    nivel = int(input("Defina um nível: "))

    if(nivel == 1):
        total_de_tentativas = 10
    elif(nivel == 2):
        total_de_tentativas = 5
    elif(nivel == 3):
        total_de_tentativas = 3
    else:
        print("escolha um nível entre 1 e 3!")
        total_de_tentativas = 0

fiz isso mesmo, porém eu precisava que o jogo retornasse para o usuário digitar, pra isso utilizei o while.

solução!

Legal Arielson, é isso mesmo!

Caso sua dúvida tenha sido sanada peço para que feche o tópico marcando a solução por favor!

Abs, bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software