Olá Eduardo, tudo bem com você?
O jogo está executando infinitamente devido ao código responsável por avaliar a entrada do usuário e remover 1 da total_de_tentativas
restante está fora do laço while
. Assim o laço sempre permanece como True
executando sem parar.
Para colocar esse bloco de código dentro do laço while
será necessário realizar uma mudança na indentação (espaços) do código. Para isso basta seguir os passos abaixo.
- Selecione da linha
acertou=chute==numero_secreto
até a última linha do código: total_de_tentativas = total_de_tentativas - 1
. - Com as linhas selecionadas, pressione TAB uma vez. Será adicionado os espaços, assim esse bloco de código ficará dentro do laço
while
. - Salve o arquivo e execute-o.
Código completo com a mudança aplicada
print("******************")
print("advinhe o número")
print("******************")
numero_secreto = 42
total_de_tentativas = 3
while (total_de_tentativas > 0):
print("tentativa:", total_de_tentativas)
chute_str = input("digite um número:")
print("vc digitou o número:", chute_str)
chute = int(chute_str)
acertou = chute == numero_secreto
maior = chute > numero_secreto
menor = chute < numero_secreto
if (acertou):
print("acertou")
else:
if (maior):
print("errou pra mais")
elif (menor):
print("errou pra menos")
total_de_tentativas = total_de_tentativas - 1
Para aprimorar ainda mais o seu aprendizado sobre indentação e sua importância na linguagem Python, recomendo a leitura do seguinte artigo:
O conteúdo recomendado acima está em inglês, o uso da língua inglesa é bem comum na área de tecnologia, mas não se preocupe, caso não tenha afinidade com essa linguagem, recomendo que utilize o tradutor do navegador para uma melhor compressão.
Lembre-se que pode contar sempre com o fórum Alura, seja para tirar suas dúvidas, compartilhar seu desenvolvimento e dicas.
Espero ter lhe ajudado. Fico à disposição.
Abraços e bons estudos.
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!