2
respostas

Jogo da adivinhação repetindo mensagem de 'fim de jogo'

Estou escrevendo o jogo da adivinhação com laço for , porém, toda verificação do número, está imprimindo a frase de saída sem acerto que é "Não foi dessa vez"

meu código:

secret_number = 3
attempt = 5

for shot in range(1, attempt+1):
    entry = input("Tente adivinhar o número secreto! Entre 1 - 10: ")

    print("Palpite {} de {}".format(shot, attempt))

    number = int(entry)

    if (number < 0 or number > 10):
        print("O número secreto está entre 1 e 10")
        continue

    hit = number == secret_number
    larger = number > secret_number
    smaller = number < secret_number

    if(hit):
        print("Você adivinhou!")
        break
    else:
        if(larger):
            print("Seu palpite é maior que o número secreto")
        elif(smaller):    
            print("Seu palpite é menor que o número secreto")

     print("Não foi dessa vez")

saída no terminal:

Tente adivinhar o número secreto! Entre 1 - 10: 5
Palpite 1 de 5
Seu palpite é maior que o número secreto
**Não foi dessa vez**
Tente adivinhar o número secreto! Entre 1 - 10: 8
Palpite 2 de 5
Seu palpite é maior que o número secreto
**Não foi dessa vez**
Tente adivinhar o número secreto! Entre 1 - 10: 2
Palpite 3 de 5
Seu palpite é menor que o número secreto
**Não foi dessa vez**
Tente adivinhar o número secreto! Entre 1 - 10:

a solução que encontrei foi inserir um continue antes da função print, porém, a frase de fim dos palpites nunca é processada

então tentei:

...
    if(hit):
        print("Você adivinhou!")
        break
    else:
        if(larger):
            print("Seu palpite é maior que o número secreto")
        elif(smaller):    
            print("Seu palpite é menor que o número secreto")
    if(shot == attempt):
        print("Não foi dessa vez")

Porém, nos exemplos da aula não é utilizada essa última verificação, conseguem me informar se estou errando de alguma forma?

Muito obrigado!!

2 respostas

Pessoal, já descobri meu erro, bem simples por sinal, kkkkkkkkkkkkkk.

Foi a indentação do último print? Era pra ficar embaixo do for né?