3
respostas

Pontuação no jogo adivinha

Não consegui entender o resultado da pontuação nas minhas tentativas...

C:\Users\DELL\PycharmProjects\pythonProject\jogos\venv\Scripts\python.exe C:/Users/DELL/PycharmProjects/pythonProject/jogos/adivinha2.py
*********************************
Bem vindo ao jogo de Adivinhação!
*********************************
40
Qual nível de dificuldade?
(1) Fácil (2) Médio (3) Difícil
Define o nível: 
Tentativa 1 de 5
Digite um número entre 1 e 100: 3
Você digitou  3
Você errou! O seu chute foi menor do que o número secreto
Tentativa 2 de 5
Digite um número entre 1 e 100: 100
Você digitou  100
Você errou!O seu chute foi maior do que o número secreto
Tentativa 3 de 5
Digite um número entre 1 e 100: 90
Você digitou  90
Você errou!O seu chute foi maior do que o número secreto
Tentativa 4 de 5
Digite um número entre 1 e 100: 80
Você digitou  80
Você errou!O seu chute foi maior do que o número secreto
Tentativa 5 de 5
Digite um número entre 1 e 100: 70
Você digitou  70
Você errou!O seu chute foi maior do que o número secreto
O número secreto era 40. Você fez 813 pontos.
Fim do jogo

Process finished with exit code 0
import random


print("*********************************")
print("Bem vindo ao jogo de Adivinhação!")
print("*********************************")

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

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

nivel = int(input("Define o nível: "))

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_str = input("Digite um número entre 1 e 100: ")
    print("Você digitou ", chute_str)
    chute = int(chute_str)

    if(chute < 1 or chute > 100):
        print("Vovê 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 do que o número secreto")
            if(rodada == total_de_tentativas):
                print("O número secreto era {}. Você fez {} pontos.".format(numero_secreto, pontos))
        elif(menor):
            print("Você errou! O seu chute foi menor do que o número secreto")
        pontos_perdidos = abs(numero_secreto - chute)
        pontos = pontos - pontos_perdidos


print("Fim do jogo")
3 respostas

Olá,

e qual seria sua dúvida? Aparentemente o código está correto.

Pelo que parece, de acordo com sua opção selecionada :

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

terá uma quantidade de tentativas de adivinhar um valor aleatório.

Sua pontuação começa com

pontos = 1000

e a cada erro perde uma quantidade de pontos

pontos_perdidos = abs(numero_secreto - chute)
pontos = pontos - pontos_perdidos

[]'s

Acontece que o valor da pontuação não sai correta.

Como o calculo da pontuação está no final do código, quando o elif imprime que você perdeu o jogo, e fez tal quantidade de pontos, essa quantidade se refere ao calculo da quarta tentativa. Ele chega a fazer o calculo da quinta tentativa, mas não é impresso.

O calculo está certo, mas a impressão não. O correto, nesse caso seria 783.

Obrigada, pelo meu cálculo teria que ser 783 mesmo. Por isso não entendia...