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

Ajuda! Meu jogo não imprime o grau de dificuldade!

Verificando meu jogo, conforme a instrução do professor, notei que não está perguntando qual o nível quero escolher para daí começar meu jogo! Obrigado desde já...

import random

#introdução do jogo
print("*********************************")
print("Bem vindo ao jogo de adivinhação")
print("*********************************")

#variáveis do jogo
numero_secreto = random.randrange(1, 101)
total_de_tentativas = 0
pontos = 1000

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

nivel = int(input("Define o nível:"))
if(nivel == 1):
    total_de_tentativas = 20
elif(nivel == 2):
    total_de_tentativas = 10
else:
    total_de_tentativas = 5

#laço de repetição:

for rodada in range(1, total_de_tentativas + 1):
    print("Tentativa {} de {}" .format(rodada, total_de_tentativas))
    chute_str = input("digite um numero de 1 e 100")
    print("Você digitou", chute_str)
    chute = int(chute_str)

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

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

#condição:

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

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

Oi, Manuel! Tudo bem? =)

Testei seu código por aqui e funcionou normalmente a parte da escolha do nível de dificuldade.

Nível 1: jogo da adivinhação nivel 1

Nível 2:

jogo da adivinhação nivel 2

Nível 3:

jogo da adivinhação nivel 3

Porém se vencermos a partida ele apresentava um erro na hora de printar os pontos, havia um erro de digitação na formatação da string:

erro de digitação na formatação da string, está escrito fomart ao invés de format

Após corrigir:

corrigindo o format

No mais estava tudo ok.

Faça o teste por ai, se o problema continuar estou a disposição.

Até mais!

Oi, obrigado por responder! Eu acredito que seja algum problema com meu Paycharm...ao enviar o código percebi esse erro e digitação do .fomat para o .format, alterei meu código porém ele continuou imprimindo apenas a partir do print do laço de repetição! Tentarei aqui novamente reiniciando o Paycharm pra ver se ele atualizou!

Então...fechei o Pycharm, abri novamente e não tem jeito...ele não atualiza meu jogo, que ta certinho como o professor orientou e como foi testado por vocês! O que acham, desinstalo e instalo novamente?

Boa tarde! Resolvi voltar no início do curso onde o Proff da a dica de usar o REPL.IT, no qual refiz meu código e rodou certinho! Mesmo assim, vou desinstalar o Paycharm e instalar novamente, pois gostei bastante de usa-lo, porém, me deparei com esse erro no programa e pra não ficar sem estudar, foi uma boa saída e uma ótima dica!

Incluí uma linha no caso do jogador escolher 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")