1
resposta

Dificuldades do jogo por quantidade de numeros (range maior)

Acho que a solução abaixo seria mais realista e refletiria melhor os níveis de dificuldades do jogo: considerar uma faixa diferente para cada nível, ao invés do numero de tentativas. Por exemplo, nível facil: o range de numeros aleatorios pré-gerados fica entre 0 e 5; dificuldade media o range fica entre 0 e 10; e nivel dificil fica entre 0 e 20. Segue o codigo:

import random
numero_secreto_facil = random.randrange(0,5)
numero_secreto_medio = random.randrange(0,10)
numero_secreto_dificil = random.randrange(0,20)
numero_tentativas = 1
tentativas_restantes = 3
pontuacao = 0
#numero = 0
nivel_dificuldade = int(input('Seleciona uma opção: (1) Fácil - (2) Médio (3) Difícil: '))

while (numero_tentativas > 0 and numero_tentativas <= 3):
    numero = int(input('Digite um número: '))
    tentativas_restantes -= 1
    if (nivel_dificuldade == 1):
      if (numero != numero_secreto_facil and tentativas_restantes != 0):
         pontuacao = pontuacao -(numero_secreto_facil - numero)
         print(f'Errou!!! Você agora tem {pontuacao} pontos e {tentativas_restantes} tentativas')
         print(f'O número secreto era {numero_secreto_facil}')
      elif numero != numero_secreto_facil and tentativas_restantes == 0:
         print(f'Errou!!! Você agora tem {pontuacao} pontos e nenhuma tentativa')
      else:
         print(f'Acertou!!! Fim de Jogo!') 

    elif (nivel_dificuldade == 2):
      if (numero != numero_secreto_medio and tentativas_restantes != 0):
         pontuacao = pontuacao -(numero_secreto_medio - numero)
         print(f'Errou!!! Você agora tem {pontuacao} pontos e {tentativas_restantes} tentativas')
         print(f'O número secreto era {numero_secreto_medio}')
      elif numero != numero_secreto_medio and tentativas_restantes == 0:
         print(f'Errou!!! Você agora tem {pontuacao} pontos e nenhuma tentativa')
      else:
         print(f'Acertou!!! Fim de Jogo!') 
    #-----------------------------
    elif (nivel_dificuldade == 3):
       if (numero != numero_secreto_dificil and tentativas_restantes != 0):
         pontuacao = pontuacao -(numero_secreto_dificil - numero)
         print(f'Errou!!! Você agora tem {pontuacao} pontos e {tentativas_restantes} tentativas')
         print(f'O número secreto era {numero_secreto_dificil}')
       elif numero != numero_secreto_dificil and tentativas_restantes == 0:
         print(f'Errou!!! Você agora tem {pontuacao} pontos e nenhuma tentativa')
       else:
         print(f'Acertou!!! Fim de Jogo!')


    numero_tentativas += 1
1 resposta

Olá Rogério, tudo bem com você?

Meus parabéns pela implementação do código, sua proposta é muito interessante, criando uma nova dinâmica para o jogo usando a quantidade de números gerados, fico feliz que esteja se desafiando e colocando em prática o que tem aprendido junto à Alura.

Quero aproveitar a oportunidade e deixar uma dica de implementação do código, quando usamos o método randrange, o parâmetro de parada é um parâmetro exclusivo, ou seja, não será considerado no momento em que o número aleatório for gerado, gerando números até o valor informado nas nunca o valor de parada.

Assim deixo como dica, para que a dificuldade gere números de 0 a 5, 0 a 10 e 0 a 20 (fácil, médio e difícil) basta que o parâmetro de parada maior em um (+1), como apresentado abaixo.

numero_secreto_facil = random.randrange(0, 6)
numero_secreto_medio = random.randrange(0, 11)
numero_secreto_dificil = random.randrange(0, 21)

Para aprimorar ainda mais o seu aprendizado recomendo a leitura do seguinte artigo, que fala sobre o uso do random.randrange() e seus principais erros, o artigo está em inglês, caso tenha dificuldades com o idioma, recomendo o uso do tradutor do navegador:

Lembre-se que pode contar sempre com o fórum Alura, seja para compartilhar seu desenvolvimento ou para tirar suas dúvidas.

Fico à disposição.

Abraços e bons estudos.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software