Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

duvida no código python

olá estou com uma duvida no meu código , botei embaixo ai , quando eu escolho a opção 2 nível médio, eu digito os números: 50,25,38,45,47,48 . era para ele parar no numero 48 como diz o vídeo, no meu código está indo direto pedindo outros números.

pode me ajudar por favor aguardo retorno. obrigado

import random

print("*********************************")
print("Bem vindo ao jogo de Adivinhação!")
print("*********************************")

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

print("Qual nivel de dificuldade?")
print("(1) Fácil (2) Médio (3) Dificil")

nivel = int(input("define o nivel:"))

if(nivel == 1):
  total_de_tentativas = 50
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_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 e 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_perdidos = abs(numero_secreto - chute)
        pontos = pontos - pontos_perdidos

print("Fim do jogo")
5 respostas
solução!

Não sei se o problema ficou claro. Rodei o código aqui e parece ok. Por que deveria parar no 48?

Sugiro dar mais espaço na sua identação (4 espaços) para que o código fique mais claro e fácil de ler.

Seu código está em perfeito estado, ele não parou no 48 pois a váriavel número secreto recebe um random, que pode ser 48 como na videoaula ou pode ser qualquer outro número, o que creio ser o seu caso.

O seu número secreto não é 48. Toda vez que você roda o código ele se torna um número aleatório.

'numero_secreto = random.randrange(1,101)'

Para verificar o funcionamento do seu código, dê um print no número secreto antes de iniciar a partida, daí poderá conferir se colocar o mesmo valor do número secreto, se vai funcionar.

Incluí uma linha no caso do jogador digitar um nível inexistente:

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