Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Refactory para não haver repetição do código quanto a impressão do número secreto e pontuação

Impressão no final do jogo, do número secreto e pontuação quando o chute for errado, independente do erro ser de um chute maior ou menor.

Com isto, o código de impressão não se repete e é escrito apenas uma vez.

CÓDIGO COMPLETO:

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))

    # A função "input" sempre retorna um string. Você deve converter com a função "int"
    chute = int(input("digite o número para advinhação entre 1 e 100: "))
    print("você chutou o número ", chute)

    if (chute < 1 or chute > 100):
        print("Você deve digitar um número entre 1 e 100!")
        continue

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

    if (acertou):
        print("parabéns!!! Você acertou e fez {} pontos!".format(pontos))
        break
    else:
        if (maior):
            print("Você errou! O seu chute foi maior que o número secreto.")
        elif (menor):
            print("Você errou! O seu chute foi menor que o número secreto.")

        pontos_perdidos = round(abs(chute - numero_secreto) / 3)  # dividindo por três
        pontos = pontos - pontos_perdidos  # subtraindo os pontos perdidos da pontuação total

        if (rodada == total_de_tentativas):
            print("*****>>>> O número secreto era {}. Você fez {}".format(numero_secreto, pontos))

print("***** Fim do jogo *****")
2 respostas
solução!

Oi Givaldo, como vai?

Mandou bem! Qualquer dúvida é só dizer, estou a disposição.

Abraços e bons estudos!

OK!

Obrigado!