1
resposta

Mão na massa: Níveis e Pontuação

Pra evitar repetir o código do if de erro nas cláusulas Menor e Maior,

if (rodada == total_de_tentativas):
    print("Fim de jogo. O número secreto era {} e você fez {} pontos".format(numero_secreto, pontos))

eu inseri fora da cláusula. Nos meus testes, tudo ocorreu bem. acho que está certo também, né? Ficou da seguinte forma:

import random

print("-----------------------------------", "Bem vindo(a) ao jogo de adivinhação", "-----------------------------------", sep="\n") # Apresentação do jogo

numero_secreto = random.randint(1, 100)
total_de_tentativas = 0
pontos = 1000

print("Escolha o nível de dificuldade")
print("1- Fácil | 2- Médio | 3- Difícil")
nivel = int(input("Digite o nível conrrepondente: "))

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("Rodada {} de {}".format(rodada, total_de_tentativas))

    chute_str = input("Digite o seu número: ")
    chute = int(chute_str)

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

    if (chute<1 or chute>100):
        print("Você deve digitar um valor entre 0 e 100. Você perdeu uma rodada.")
        continue
    else:
        print("Você chutou: " + chute_str)

    if (acertou):
        print("Você acertou! :D | Voce obteve {} pontos".format(pontos))
        break
    else:
        if (maior):
            print("Você errou. Você chutou um número MAIOR. :(")
        elif (menor):
            print("Você errou. Você chutou um número MENOR. :(")
        pontos_perdidos = abs(chute-numero_secreto)
        pontos = pontos - pontos_perdidos
        if (rodada == total_de_tentativas):
            print("Fim de jogo. O número secreto era {} e você fez {} pontos".format(numero_secreto, pontos))
1 resposta

Oi Henrique!

Muito boa! Eu fiz algo parecido. Ficou massa o seu.

Eu também tive outra ideia. Na parte do código onde armazenamos a variável do número de tentativas fiz uma pena alteração.

Antes:

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

Coloquei um while para que ele só passa dessa fase se o usuário fornecer uma das 3 opções. Como o código está se ele digitar qualquer coisa diferente de 1 e 2, o nível de dificuldade vai para o 3.

Depois:

    while(total_de_tentativas == 0):
        print("Qual nível de dificuldade?")
        print("(1) Fácil, (2) Médio, (3) Díficil")

        nivel = int(input("Defina um nível: "))

        if (nivel == 1):
            total_de_tentativas = 9
        elif (nivel == 2):
            total_de_tentativas = 6
        elif (nivel == 3):
            total_de_tentativas = 3    
        else:
            total_de_tentativas = 0
            print("Por favor, digite uma das opções solicitadas. Você digitou {}".format(nivel))
            print()

Grande abraço!