Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Sugestão] código de adivinhação niveis e pontuação .

bom só fiquei na duvida pq mesmo errando e todas tentativas o jogador pontua no nível dificil.

import random

print(33 * '*')
print('Bem vindo ao jogo de Adivinhação!')
print(33 * '*')
total_de_tentativas = 0
numero_secreto = random.randrange(1, 101)
pontos = 1000



print('Qual nilvel de dificuldade?')
print('(1) Fácíl (2) Médio (3) Difícil')

nivel = int(input('Defina seu 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(f'Tentativa {rodada} de {total_de_tentativas}.')
    chute = int(input('Digite o numero :'))
    pontos_perdidos = abs(numero_secreto - chute)
    pontos = pontos - pontos_perdidos

    if chute < 1 or chute > 100:
        print('Você deve digitar um número entre 1 e 100!')
        continue
    if rodada == total_de_tentativas:
        print(f'O número secreto era {numero_secreto}. Você fez {pontos}')
    elif chute == numero_secreto:
       print('Parabéns! Você acertou!')
       print(f'Você acertou e fez {pontos} pontos!')
       break
    elif chute > numero_secreto:
         print('Você errou! O seu chute foi maior que o número secreto.')
    elif chute < numero_secreto:
        print('Você errou! O seu chute foi menor que o número secreto.')
    elif chute < 1 or chute > 100:
        print('Você deve digitar um número entre 1 e 100!')
        continue


print('Fim do jogo')
1 resposta
solução!

Olá Kassia, tudo bem com você?

Fico feliz que tenha compartilhado o seu código no fórum Alura. Meus parabéns pela implementação do código.

No jogo da Adivinhação foi definido que os pontos perdidos pelo usuário a cada tentativa será a diferença entre o número secreto e o valor que foi chutado, declarado na seguinte linha de código: pontos_perdidos = abs(numero_secreto - chute).

Assim, mesmo que o usuário escolha o nível dificuldade Difícil ele irá pontuar ao final do jogo, já que ele inicia com 1000 pontos, e por ter uma quantidade baixa de tentativa (5), não será suficiente para perder todos os pontos ao errar todas as tentativas. A dificuldade do jogo possui o objetivo de apenas limitar a quantidade máxima de tentativas disponível para o usuário.

Uma dica que posso dar para implementar o código, será definir um fator multiplicador, que será usado para fazer com que ao jogar em uma dificuldade maior, os pontos perdidos sejam maiores. Para isso, no momento em que é declarado o total de tentativas, iremos definir os fatores multiplicadores, como apresentado abaixo.

if nivel == 1:
    total_de_tentativas = 20
    fator_multiplicador = 1.0
elif nivel == 2:
    total_de_tentativas = 10
    fator_multiplicador = 1.5
else:
    total_de_tentativas = 5
    fator_multiplicador = 2.0

No código acima estamos dizendo que para o nível 1 (fácil) o fator multiplicador será 1.0, para o nível 2 (médio) será 1.5 e no último nível (difícil) será 2.0. Usaremos esse fator multiplicador no momento em que declaramos a variável pontos_perdidos, como apresentado abaixo.

pontos_perdidos = abs(numero_secreto - (chute * fator_multiplicador))

Desta forma estamos definindo que ao errar no nível 2 (médio) o usuário perderá 50% mais pontos e jogando no nível difícil ele perderá o dobro de pontos. Essa implementação trará um peso maior ao erro do usuário.

Código completo com a dica de implementação aplicada

import random

print(33 * '*')
print('Bem vindo ao jogo de Adivinhação!')
print(33 * '*')
total_de_tentativas = 0
numero_secreto = random.randrange(1, 101)
pontos = 1000

print('Qual nilvel de dificuldade?')
print('(1) Fácíl (2) Médio (3) Difícil')

nivel = int(input('Defina seu nível: '))

if nivel == 1:
    total_de_tentativas = 20
    fator_multiplicador = 1.0
elif nivel == 2:
    total_de_tentativas = 10
    fator_multiplicador = 1.5
else:
    total_de_tentativas = 5
    fator_multiplicador = 2.0

for rodada in range(1, total_de_tentativas + 1):
    print(f'Tentativa {rodada} de {total_de_tentativas}.')
    chute = int(input('Digite o numero :'))
    pontos_perdidos = abs(numero_secreto - (chute * fator_multiplicador))
    pontos = pontos - pontos_perdidos

    if chute < 1 or chute > 100:
        print('Você deve digitar um número entre 1 e 100!')
        continue
    if rodada == total_de_tentativas:
        print(f'O número secreto era {numero_secreto}. Você fez {pontos}')
    elif chute == numero_secreto:
        print('Parabéns! Você acertou!')
        print(f'Você acertou e fez {pontos} pontos!')
        break
    elif chute > numero_secreto:
        print('Você errou! O seu chute foi maior que o número secreto.')
    elif chute < numero_secreto:
        print('Você errou! O seu chute foi menor que o número secreto.')
    elif chute < 1 or chute > 100:
        print('Você deve digitar um número entre 1 e 100!')
        continue

print('Fim do jogo')

Caso queira implementar o seu código com a proposta acima, lembre-se de salvar o arquivo após as mudanças e antes de executá-lo.

Espero ter ajudado. Em caso de dúvidas estou à disposição.

Não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!