1
resposta

Jogo terminado e com alguns ajustes.

Eu reparei que qualquer número diferente de 1 e 2 que o jogador digitava na hora de escolher o nível o jogo ia para a dificuldade difícil, então eu coloquei o elif nivel == 3: para corrigir isso e deu certo. Mas depois de corrigir essa parte eu notei que quando se colocava um numero maior que 3 ou menor que 1 o programa parava, então eu fiz um loop com while para evitar isso e avisar o jogador que eles escolheu um nível invalido e pedir para digitar novamente. E no final eu coloquei para o jogo mostrar qual era o número secreto no caso do jogador não ter mais nenhuma tentativa. Gostei bastante de fazer o jogo!

import random

print(43 * "*")
print("Seja bem vindo ao jogo do número secreto!!!")
print(43 * "*")

numero_secreto = random.randrange(1, 101)
tentativa = 0
pontos = 1000
nivel = 1

print("Nível de difículdade:")
print("Fácil(1) Medio(2) Difícil(3)")
print("nivel inexistente, digite outro")
nivel = int(input("Digite o número do nível de difículade desejado:"))

while nivel < 1 or nivel > 3:
    nivel = int(input("o nível digitado é invalido, digite novamente:"))

if nivel == 1:
    tentativa = 20

elif nivel == 2:
    tentativa = 10

elif nivel == 3:
    tentativa = 5


for rodada in range(1, tentativa + 1):
    print("Tentativa {} de {}".format(rodada, tentativa))

    chute_str = input("Digite um número entre 1 e 100:")

    print("O seu palpite foi:", chute_str)

    chute = int(chute_str)

    if chute < 1 or chute > 100:
        print("você digitou um número invalido e perdeu uma rodada. Tente novamente")
        continue

    acerto = chute == numero_secreto
    menor = chute  <  numero_secreto
    maior = chute  >  numero_secreto

    if acerto:
        print("Parabéns!!! Você acertou e fez {} pontos!".format(pontos))
        break
    else:
        if maior:
            print("O seu palpite foi maior que o número secreto.")
        elif menor:
            print("O seu palpite foi menor que o número secreto.")
        pontos_perdidos = abs(numero_secreto - chute)
        pontos = pontos - pontos_perdidos


if not acerto:
    print("suas chances acabaram. O número secreto era {}:".format(numero_secreto))

print("Fim de jogo!")
1 resposta

Olá Luis, tudo bem com você?

Meus parabéns pela implementação do código, esse pensamento de prever os possíveis erros de interação com usuário é importante, devemos ter esse pensamento na fase de projeto dos nosso códigos e criarmos métodos para prevenir as possíveis interações fora do padrão desejado.

Fico feliz que tenha gostado do jogo proposto durante o curso.

Caso tenha alguma dúvida, encontro-me à disposição.

Abraços e bons estudos.