Revendo a atividade observei que faltou apenas a última parte: “… ao final do jogo, qual era o número secreto que não foi adivinhado e a pontuação final do usuário, mesmo que ele não tenha vencido a partida” Optei em alterar a sugestão do if. Coloquei um único if logo após o for, “if (maior or menor):”, para imprimir o nº secreto e a pontuação. Segue o código do programa “adivinha10”:
import random
print("") print("Bem vindo ao jogo de Adivinhação!") print("")
print("Temos novidades!") print("Nesta nova versão você pode escolher o nível de dificuldade do jogo.") print("Você pode escolher entre os níveis Fácil, Médio e Difícil") print("Além disso, no final você terá uma pontuação. Vamos lá!?!")
nivel = 5 while (nivel < 1 or nivel > 3): print("Qual o nível de dificuldade você escolhe?") 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
numero_secreto = random.randrange(1, 101) pontos = 1000
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!")
print("Parabéns você 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 = (pontos - abs(numero_secreto - chute))
if (maior or menor): print("O número secreto era {}. Você fez {}.".format(numero_secreto, pontos)) print("Fim do jogo!")