Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Duvida e eesolução While

print(33 * "*")
print("Bem vindo no jogo de adivinhação")
print(33 * "*")

numero_secreto = 42
total_de_tentativas = 3
rodada = 1

while(rodada <= total_de_tentativas):
    print("Tentativa {} de {}".format(rodada,total_de_tentativas))
    chute_str = int(input("Digite o seu numero: "))
    acertou = chute_str == numero_secreto
    chute_maior = chute_str > numero_secreto
    chute_menor = chute_str < numero_secreto

    if(acertou):
        print("Acertou!")
    elif (chute_maior):
        print("Errou!. O numero secreto é maior que o seu chute!")
    elif (chute_menor):
        print("Errou!. O numero secreto é menor que o seu chute!")

    rodada = rodada + 1

print("Fin do Jogo")

Tenho uma dúvida, como saber qual é o fim de uma instrução while ou até onde vai?

1 resposta
solução!

Oi, Elias, tudo bem?

O bloco de código executado em um loop while é definido pela indentação. No Python, a indentação é muito importante e é o que determina o escopo de um bloco de código. Então, tudo que estiver indentado logo após a instrução while faz parte do loop.

No seu código, o loop while começa na linha while(rodada <= total_de_tentativas): e vai até a linha rodada = rodada + 1. Ou seja, todo esse bloco de código será repetido enquanto a condição (rodada <= total_de_tentativas) for verdadeira.

Aqui está um exemplo para ilustrar:

while(condição):
    # Este bloco de código faz parte do loop while
    instrução1
    instrução2
    instrução3
# Este bloco de código já não faz parte do loop while
instrução4
instrução5

No exemplo acima, instrução1, instrução2 e instrução3 são executadas enquanto a condição for verdadeira. Assim que a condição se tornar falsa, o programa sai do loop e continua executando o restante do código, começando por instrução4.

Com relação ao código do seu jogo de adivinha, ele ficou muito legal, me diverti muito jogando, contudo, seria interessante ao acertar o número que o jogo parasse. Além disso, percebi que ao jogar havia um problema com as dicas invertendo a interpretação de um número maior ou menor em relação ao número secreto. Realizei algumas alterações e o código ficou assim:

print(33 * "*")
print("Bem-vindo ao jogo de adivinhação")
print(33 * "*")

numero_secreto = 42
total_de_tentativas = 3
rodada = 1

while rodada <= total_de_tentativas:
    print("Tentativa {} de {}".format(rodada, total_de_tentativas))
    chute_str = input("Digite o seu número: ")
    chute = int(chute_str)
    
    acertou = chute == numero_secreto
    chute_maior = chute > numero_secreto
    chute_menor = chute < numero_secreto

    if acertou:
        print("Acertou!")
        break  # Sai do loop quando o jogador acerta
    elif chute_maior:
        print("Errou! O número secreto é menor que o seu chute!")
    elif chute_menor:
        print("Errou! O número secreto é maior que o seu chute!")

    rodada += 1

print("Fim do Jogo")

Espero ter ajudado. Caso tenha dúvidas, não hesite em postar no fórum!

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!