2
respostas

OU ELE RODA LOOPING INFINITO OU CONTINUA A FAZER O QUE FAZIA ANTES, NAO RODA AS 3 VEZES

insira seu código aquiprint ("*") print ("Bem vindo ao jogo de adivinhacao! ") print ("*")

numero_secreto = 42 total_de_tentativas = 3 rodada = 1

while (total_de_tentativas > 0): print("Tentativa", rodada, "de", total_de_tentativas)

chute_str = input("Digite o seu numero: ") print("voce digitou", chute_str)

chute = int(chute_str)

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

if (acertou): print("Voce Acertou!") else: if (maior): print("Voce errou! O seu chute foi maior que o numero secreto") elif (menor): print("Voce errou! O seu chute foi menor que o numero secreto")

rodada = rodada + 1

print(rodada)

print("Fim do Jogo!")

2 respostas

Bom dia Aitor.

Seu código está um pouco difícil de ler. É importante ter um código devidamente identado para que isso ajude na leitura e compreensão do mesmo.

Por exemplo:

print ("*")
print ("Bem vindo ao jogo de adivinhacao! ") 
print ("*")

numero_secreto = 42 
total_de_tentativas = 3 
rodada = 1

while (total_de_tentativas > 0): 
    print("Tentativa", rodada, "de", total_de_tentativas)
    chute_str = input("Digite o seu numero: ") 
    print("voce digitou", chute_str)
    chute = int(chute_str)

Acredito que o problema esteja na lógica do seu while. A variável total_de_tentativas sempre será maior que 0 pois você já inicia o laço com ela valendo 3 e no decorrer das interações a variável continua intacta.

Para que funcione você precisa fazer o que é conhecido como 'interar o laço'

Um exemplo:

numero_secreto = 42 
total_de_tentativas = 0 
rodada = 1

while (total_de_tentativas < 3 ): 
    #Aqui dentro vai a lógica do seu programa 
    .
    .
    .
    total_de_tentativas = total_de_tentativas +1
    #Por fim você incrementa a variável de controle

Ou seja , dessa forma total_de_tentativas recebe + 1 toda vez que executa o codigo dentro do laço. Assim quando ele chegar a 3 (total_de_tentativas < 3 ) ele para.

Logo o loop é executado somente 3x

Bom dia Aitor!

Lembre-se também que a indentação é fundamental no python! Se a linha que faz o incremento(ou decremento) do contador não estiver indentado corretamente no laço(while), também ficará em loop infinito.