Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Não compreendi o cálculo de pontos Aula 7 - vídeo 2

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("Qual o nível de dificuldade?", numero_secreto)
print("(1) Fácil (2) Médio (3) Difícil")

nivel = int(input("Defina 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("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 do que o número secreto.")
        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")

Olá Prof. Tudo bom? Não compreendi como está acontecendo o cálculo dos pontos restantes. Por favor, poderia me explicar? Sei que o ponto inicial é 1000, mas não estou compreendendo em que momento do código ele decide quantos pontos irão descontar dos 1000 pontos iniciais? É uma pontuação fixa que é debitada em cada erro? Agradeço se trouxer uma explicação mais detalhada.

1 resposta
solução!

Olá Yara,

Quando o usuário chuta um número, esse valor é subtraído do número secreto e subtraído do total de pontos. A função abs() converte o cálculo (numero_secreto-chute) em um número positivo(absoluto), para evitar quando o chute é superior ao número_secreto, e na subtração um número negativo seja subtraído do total de pontos, dessa forma a subtração se tornaria adição.

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