Bom dia, tudo bem? Seguindo a linha de aprendizado desta sessão, decidi melhorar o código do jogo adivinhacao.py com os novos conhecimentos, entretanto, ocorreram alguns erros. Ao criar as funções para deixar o código mais limpo, as funções dentro do def jogar(): não estão reconhecendo algumas variáveis, como posso resolver isso? Segue o código abaixo:
import random
def jogar(): elementar() definindo_chutes() resultados()
#Funções def elementar(): print("***") print("** Bem vindo ao jogo de adivinhação! **") print("***") numero_secreto = random.randrange(1, 101) total_de_tentativas = 0 pontos = 1000 print("Qual nivel de dificuldade?") print("[1] Fácil [2] Médio [3] Difícil")
nivel = int(input("Escolha o nível: "))
if (nivel == 1):
total_de_tentativas = 20
elif (nivel == 2):
total_de_tentativas = 10
else:
total_de_tentativas = 5
def definindo_chutes(): for rodada in range(1, total_de_tentativas + 1): print("Rodada {0} de {1}".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("Atenção: o número digitado deve ser entre 1 e 100!")
continue # Diferente do break, retorna o laço
acertou = chute == numero_secreto
maior = chute > numero_secreto
menor = chute < numero_secreto
def resultados(): if (acertou): print("Você acertou, parabéns! Sua pontuação foi {}".format(pontos))
#break
else:
if (maior):
print("Você errou :( seu chute foi maior do que o número secreto")
elif (menor):
print("Você errou :( seu chute foi menor do que o número secreto")
pontos_perdidos = abs(numero_secreto - chute)
pontos = pontos - pontos_perdidos
print("Fim do jogo! O número secreto era {}.".format(numero_secreto))
if(name == "main"): jogar()