O jogo faz a operação de subtração de pontos apenas quando o chute é menor que o número secreto. Segue trecho do código do gabarito:
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
Solucionei copiando o cálculo para a possibilidade do chute ser maior que o número secreto. Segue trecho do meu código:
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! Seu chute foi maior que o número secreto")
pontos_perdidos = abs(numero_secreto - chute)
pontos = pontos - pontos_perdidos
elif(menor):
print("Você errou! Seu chute foi menor que o número secreto")
pontos_perdidos = abs(numero_secreto - chute)
pontos = pontos - pontos_perdidos
Olhando assim acredito que caiba uma refatoração desse cálculo para deixar o código mais elegante. Alguém se habilita a me ajudar?