3
respostas

como melhorar ?

Com meu nível atual, essa foi a forma que encontrei , caso escolham um nível de dificuldade maior que 3 e menor que 1. alguma dica para melhorar?

como: melhorar legibilidade ou uma lógica mais simples e concisa ?

total_de_tentativas = 0

while (total_de_tentativas == 0):

    nivel = int(input(("qual o nivel que desejas arriscar?")))
    print()

    if (nivel == 1):
        total_de_tentativas = 20
        print("bem vindo ao nivel fácil jogo de adivinhação!")
        print(f"vc tem {total_de_tentativas} tentativas!")

    elif (nivel == 2):
        total_de_tentativas = 10
        print("bem vindo ao nivel médio do jogo de adivinhação!")
        print(f"vc tem {total_de_tentativas} tentativas!")

    elif(nivel == 3):
        total_de_tentativas = 5
        print("bem vindo ao nivel difícil do jogo de adivinhação!")
        print(f"vc tem {total_de_tentativas} tentativas!")

    else :
        print("escolha de 1 a 3 ?")
        total_de_tentativas = 0
        continue
3 respostas

Uma dica seria criar uma função para exibir a mensagem para o usuário, evitando a repetição desse trecho de código.

total_de_tentativas = 0


def saudacao(nivel_dificuldade):
    print(f"bem vindo ao nivel {nivel_dificuldade} jogo de adivinhação!")
    print(f"vc tem {total_de_tentativas} tentativas!")


while total_de_tentativas == 0:

    nivel = int(input("qual o nivel que desejas arriscar? "))

    if nivel == 1:
        total_de_tentativas = 20
        saudacao('Fácil')

    elif nivel == 2:
        total_de_tentativas = 10
        saudacao('Médio')

    elif nivel == 3:
        total_de_tentativas = 5
        saudacao('Difícil')

    else:
        print("escolha de 1 a 3 ?")
        total_de_tentativas = 0
        continue

Não estudei função ainda, mas acho que entendi , (saudacao) é a função criada pelo (def) que vai ser chamada por umas das condições do while que por sua vez está com os valores de (total_de_tentativas ) e ( nivel_dificuldade). obrigado Leonardo Santino!

Oi Victor, Veja como fiz em relação a sua pergunta:

import random

print("x" * 50)
print("          Bem vindo ao jogo de advinhação")
print("x" * 50)

numero_secreto = round(random.randrange(1,101))
total_de_tentativas = 0
pontos = 1000

print("Qual o nível de dificuldade?", numero_secreto)
print("(1) Fácil (2) Médio (3) Difícil")

nivel = int(input("Defina o nível: "))

if (nivel != 1 and nivel != 2 and nivel != 3):
    print("Você digitou nível inexistente, escolha (1), (2) ou (3)")
elif (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("Tentativa {} de {}".format(rodada, total_de_tentativas))
      chute = int(input("Digite um número entre 0 e 100: "))
      print("Você digitou ", chute)

      if chute < 1 or chute > 100:
          print("Você deve digitar um número entre 1 e 100!")

      acertou = chute == numero_secreto
      maior   = chute > numero_secreto
      menor   = chute < numero_secreto

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




print("Fim do jogo")