3
respostas

ERRO DE SINTAXE???

O código apresetado como solução só mostraria os pontos em caso dos sucessivos erros serem sempre maiores do que o númmero secreto! Correto?

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?")
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:
        pontos_perdidos = abs(numero_secreto - chute)
        pontos = pontos - pontos_perdidos
        if(maior):
            print("O seu chute foi maior que o número secreto")
            if (rodada == total_de_tentativas): #só  entra nessa condição se o chutte  sempre for maior! Se for menor,não vai exibir a mensagem na função print
                print("O número secreto era {}. Você fez {}".format(
                    numero_secreto, pontos))
        elif(menor):
            print("Você errou! O seu chute foi menor do que o número secreto.")
            if (rodada == total_de_tentativas):
                print("O número secreto era {}. Você fez {}".format(
                    numero_secreto, pontos))

print("Fim do jogo")
3 respostas

O print mostrando os pontos só é chamado quando chega no total de tentativas, tanto no chute maior ou menor

Testei esse código no caso dos meus palpites serem sempre menores que o número secreto e nesse caso o print não aparece!

Testei aqui e apareceu sim

elif(menor):
            print("Você errou! O seu chute foi menor do que o número secreto.")
            if (rodada == total_de_tentativas):
                print("O número secreto era {}. Você fez {}".format(
                    numero_secreto, pontos))

O print faz a formatação colocando as duas variáveis, então no final ele coloca os pontos invés de escrever pontos, talvez seja essa a confusão

![](Insira aqui a descrição dessa imagem para ajudar na acessibilidade )