1
resposta

Na aula 7 exercício 02 Definindo uma pontuação para o usuário

Fiz os testes criando os níveis de jogo e sistema de pontuação. Fiz a implementa no jogo na versão “adivinhacao9” com o sistema de nível e o sistema de pontos. Segue o código com alterações.

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

print("Fim do jogo!")

1 resposta

Olá, Raimundo!

Pelo que eu vejo, você fez um ótimo trabalho implementando o sistema de níveis e de pontuação no seu jogo! Parabéns!

A sua implementação está correta e segue bem o que foi proposto no exercício. A única diferença que eu vejo entre o seu código e o exemplo da aula é que você decidiu calcular a pontuação perdida diretamente na linha onde você atualiza a pontuação total.

No seu código, você fez:

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

Enquanto no exemplo da aula, eles separaram essa operação em duas partes:

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

Ambas as abordagens estão corretas e resultam no mesmo valor final para a pontuação. A diferença é mais uma questão de estilo de programação. Alguns programadores preferem dividir operações complexas em várias linhas para tornar o código mais fácil de ler e entender.

Espero ter ajudado e bons estudos!