Após terminar a segunda parte e aprender um pouco mais sobre a linguagem, resolvi voltar ao "Jogo da Adivinhação" e usar funções para as etapas deste jogo também.
Aproveitando e perguntando a quem tem mais experiência, já que ainda sou iniciante nesta, ficou meio bagunçado? Dá para entender corretamente?
Sei que existem várias e várias maneiras de se chegar ao resultado, compartilhando para saber a opinião mesmo.
Obrigado.
import random
def jogar():
titulo()
numero_secreto = cria_numero_secreto()
pontos = define_pontuacao()
numero_tentativas = grau_de_dificuldade()
print("\nIniciando o jogo...")
pontuacao = acertou_ou_errou(numero_tentativas,numero_secreto,pontos)
print("\nO número secreto era {}. Terminou o jogo com {} pontos.".format(numero_secreto,pontuacao))
print("\nFim do jogo.")
def titulo():
print("*********************************")
print("Bem-vindo ao Jogo da Adivinhação!")
print("*********************************")
def cria_numero_secreto():
numero_secreto = random.randrange(1,101)
return numero_secreto
def define_pontuacao():
pontos = 1000
return pontos
def grau_de_dificuldade():
escolha = True
while (escolha):
print("\nQual o nível de dificuldade?\n1 - Fácil\n2 - Médio\n3 - Difícil")
nivel = input("Defina o nível: ").strip()
if (nivel.isdigit() == True):
nivel_int = int(nivel)
if (nivel_int == 1):
numero_tentativas = 20
break
elif(nivel_int == 2):
numero_tentativas = 10
break
elif(nivel_int == 3):
numero_tentativas = 5
break
else:
print("Não foi digitado um número válido.")
else:
print("Não foi digitado um número válido.")
return numero_tentativas
def acertou_ou_errou(numero_tentativas,numero_secreto,pontos):
for rodada in range(1, numero_tentativas + 1):
print("\nTentativa {:02d} de {:02d}.".format(rodada,numero_tentativas))
chute_str = input("Digite o seu número entre 1 e 100: ")
chute_int = int(chute_str)
print("\nVocê digitou {}.".format(chute_int))
if (chute_int < 1 or chute_int > 100):
print("\nVocê digitou um número inválido. Deve ser entre 1 e 100.")
continue
acertou = numero_secreto == chute_int
chute_maior = numero_secreto > chute_int
chute_menor = numero_secreto < chute_int
if(acertou):
print("\nVocê acertou! \o/")
break
else:
sem_tentativas = rodada
if (chute_menor) :
print("O seu chute foi maior que o número secreto.")
elif (chute_maior) :
print("O seu chute foi menor que o número secreto.")
print("Você errou!")
pontos_perdidos = abs(numero_secreto - chute_int)
pontos = pontos - pontos_perdidos
return pontos
if(__name__ == "__main__"):
jogar()