Pessoal, boa noite. Tudo bem com vocês? No andamento do curso fiz um protótipo do "jogo de adivinhação", depois de muito pensar, acabou dando praticamente tudo certo.
Notei apenas um comportamento estranho nisso tudo... se eu acertar o número aleatório gerado na minha última tentativa, não está imprimindo o "Parabéns, você acertou", como eu tinha programado. Alguém consegue me dar uma luz nisso?
'''
declarar primeiras variáveis de controle e a função de contagem de tentativas
num_min = numero minimo no intervalo de escolhas
cont_tent = auxiliar na contagem de tentativas que será imprimida na tela
nivel = será trocada pelo input do usuário
'''
import random
num_min = 1
cont_tent = 1
nivel = 0
def contador_tentativas():
print("Tentativa: {} de {}". format(cont_tent, tent_max))
# Inicialização do jogo com a escolha do nível desejado. Com base na escolha, é gerado o número aleatório.
while nivel < 1 or nivel > 3:
print("Escolha o nível desejado:")
print("(1)Fácil (2)Médio (3)Difícil")
nivel = int(input("Escolha o nível desejado:"))
if nivel < 1 or nivel > 3:
print("O nível escolhido deve estar entre 1 e 3, tente novamente.")
elif nivel == 1:
num_max = 10
tent_max = 3
elif nivel == 2:
num_max = 50
tent_max = 4
elif nivel == 3:
num_max = 100
tent_max = 5
numero_aleatorio = int(random.randrange(num_min, num_max + 1, 1))
# Fim do bloco de escolha de nível, inicio do jogo com o contador e aguardando o input do usuário
contador_tentativas()
numero_escolhido = int(input("Digite um número entre {} e {}:".format(num_min, num_max)))
for cont_tent in range(1, tent_max):
if numero_escolhido < num_min or numero_escolhido > num_max:
print("O número deve estar entre {} e {}, tente novamente.".format(num_min, num_max))
cont_tent = (cont_tent + 1)
contador_tentativas()
numero_escolhido = int(input("Digite um número entre {} e {}:".format(num_min, num_max)))
else:
if numero_escolhido == numero_aleatorio:
print("Parabéns, você acertou!")
break
elif numero_escolhido < numero_aleatorio:
print("Seu chute foi MENOR do que o sorteado.")
cont_tent = (cont_tent + 1)
contador_tentativas()
numero_escolhido = int(input("Digite um número entre {} e {}:".format(num_min, num_max)))
elif numero_escolhido > numero_aleatorio:
print("Seu chute foi MAIOR do que o sorteado.")
cont_tent = (cont_tent + 1)
contador_tentativas()
numero_escolhido = int(input("Digite um número entre {} e {}:".format(num_min, num_max)))
if cont_tent >= tent_max:
print("Suas tentativas acabaram. Reinicie o programa e tente novamente!")
print("\nCtrl: escolhido = {} sorteado = {}".format(numero_escolhido, numero_aleatorio))
Só informando também que se eu acerto antes da última tentativa, tudo dá certo, como previsto. Esse comportamento acontece só na última.
Valeu!