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

Programa continua pedindo resposta após ter acertado.

print(27*"*")
print("Bem vindo ao Jogo de Python")
print(27*"*")

    numero_secreto = 5
    numero_secreto_str = str(numero_secreto)
    contador = 0
    total_tentativas = 3

    for contador in range(1, total_tentativas + 1):
        print("Tentativa {} de {}" .format(contador, 3))
        palpite = int(input("Qual é o número secreto? "))

    if(numero_secreto == palpite):
        print("Você acertou! O número secreto era" , numero_secreto_str + "." , sep=" ")
        contador = (contador + 4)
    elif(numero_secreto > palpite):
        print("Você errou! Seu palpite foi menor que o número secreto.")
    else:
        print("Você errou! Seu palpite foi maior que o número secreto.")

print(12*"*")
print("Fim do jogo. O número secreto era " , numero_secreto)
print(12*"*")
2 respostas

Boa tarde Renan, tudo bem?

Você não realizou um método de parada. Neste caso ele só irá parar de rodar após todo o loop do "for" for completo. Neste caso tu pode utilizar o método While, tomei a iniciativa de refatorar teu código com While para atender o que tu desejava

print(27*"*")
print("Bem vindo ao Jogo de Python")
print(27*"*")

numero_secreto = 5
tentativas = 3
acerto = False
tentativa = 0
while ((acerto==False) and (tentativa <= tentativas)):
    tentativa += 1 
    print("Tentativa {} de {}" .format(tentativa, 3))
    palpite = int(input("Qual é o número secreto? "))
    if (numero_secreto) == palpite:
        print(f"Você acertou! O número secreto era {numero_secreto}")   
        acerto = True
    elif (numero_secreto > palpite):
        print("Você errou! Seu palpite foi menor que o número secreto.")
    else:
        print("Você errou! Seu palpite foi maior que o número secreto.")

print(12*"*")
print("Fim do jogo. O número secreto era " , numero_secreto)
print(12*"*")
solução!

Boa noite, galera. Baum com vocês? ^- ^ A forma que o Renan tentou quebrar o looping forçando o valor de entrada, eu acredito que funcione melhor com o While mesmo, igual o Diego fez com o uso de bool e umas coisinhas a mais. No entanto, há uma outra forma de resolver também com base no início do seu código, Renan, apenas introduze o "break". No geral ele vai fazer a mesma coisa que você tentou fazer ali atrás com contador = (contador + 4), ele vai quebrar o looping pulando para o próximo comando.

Alterei o seu código adicionando o break e rodou certinho, depois dá uma conferida lá:

print(27*"*")
print("Bem vindo ao Jogo de Python")
print(27*"*")

numero_secreto = 5
numero_secreto_str = str(numero_secreto)
contador = 0
total_tentativas = 3

for contador in range(1, total_tentativas + 1):
    print("Tentativa {} de {}" .format(contador, 3))
    palpite = int(input("Qual é o número secreto? "))

    if(numero_secreto == palpite):
        print("Você acertou! O número secreto era" , numero_secreto_str + ".", sep=" ")
        break
    elif(numero_secreto > palpite):
        print("Você errou! Seu palpite foi menor que o número secreto.")
    else:
        print("Você errou! Seu palpite foi maior que o número secreto.")

print(12*"*")
print("Fim do jogo. O número secreto era ", numero_secreto)
print(12*"*")

Uma última coisa, toma cuidado com as colunas espaçadas sem necessidade, talvez em algum momento dê algum erro caso elas estejam após um looping, ou algo do gênero. Abraços, maninho 0/