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

[Dúvida] É possível pedir uma interação dentro de um For Loop?

Eu teminei o curso e voltei para revisar quando tive uma ideia, mesmo que não seja uma alternativa que devesse ser realizada, queria saber se é possível.

A Baixo é a função de verificação do botão chute que criei durante o curso, funciona perfeitamente.

function verificarChute() {
  let chute = document.querySelector("input").value;
  if (chute == numeroSecreto) {
    let palavraTentativas = tentativas > 1 ? "tentativas" : "tentativa";
    let mensagemDeTentativas = `Você acertou essa porra com ${tentativas} ${palavraTentativas}`;
    textoExibidoNaTela("h1", `BOA `);
    textoExibidoNaTela("p", mensagemDeTentativas);
    document.getElementById("reiniciar").removeAttribute("disabled");
  } else {
    if (chute < numeroSecreto) {
      textoExibidoNaTela("p", "The Secrete Number é maior");
    } else if (chute > numeroSecreto && chute <= numerosMaximos) {
      textoExibidoNaTela("p", "The Secrete Number é menor");
    } else {
      textoExibidoNaTela(
        "p",
        `O numero é até ${numerosMaximos}`
      );
    }
    tentativas++;
    limparCampoDeTexto();
  }
}

Aqui é a ideia onde usaria um for loop para incrementar as tentativas, fazendo de alguma forma ele esperar o acionamento do botão para continuar. Queria saber se é possível uma interação assim.

function verificarChute(params) {}

function teste(params) {
   for (let chute = document.querySelector('input').value; chute != numeroSecreto; tentativas++) {
    if (chute < numeroSecreto) {
      textoExibidoNaTela("p", "The Secrete Number é maior");
    } else if (chute > numeroSecreto && chute <= numerosMaximos) {
      textoExibidoNaTela("p", "The Secrete Number é menor");
      //botão de chute é acionado
}
 let palavraTentativas = tentativas > 1 ? "tentativas" : "tentativa";
 let mensagemDeTentativas = `Você acertou com ${tentativas} ${palavraTentativas}`;
 textoExibidoNaTela("h1", `BOA`);
 textoExibidoNaTela("p", mensagemDeTentativas);
}
1 resposta
solução!

Oi Gabriel! Tudo ok contigo?

A resposta para sua pergunta, é sim! É possível fazer a interação com o loop for!

No exemplo que você mostrou, você criou um loop for para incrementar as tentativas e esperar o acionamento do botão para continuar. Essa é uma forma válida de utilizar um loop for para interagir com o usuário. No entanto, é importante lembrar que o loop for irá executar um número fixo de iterações, determinado pelo valor inicial, a condição de parada e o incremento. Portanto, se você deseja que o loop espere o acionamento do botão para continuar, talvez seja necessário utilizar uma abordagem diferente.

Uma alternativa seria utilizar um loop while, que permite que você continue repetindo um bloco de código até que uma determinada condição seja atendida. Nesse caso, você poderia utilizar um loop while para verificar se o chute é diferente do número secreto e, dentro do loop, esperar o acionamento do botão para atualizar o valor do chute.

Aqui está um exemplo de como você poderia fazer isso:
function verificarChute() {
  let chute = document.querySelector("input").value;
  let tentativas = 0;

  while (chute != numeroSecreto) {
    if (chute < numeroSecreto) {
      textoExibidoNaTela("p", "The Secret Number é maior");
    } else if (chute > numeroSecreto && chute <= numerosMaximos) {
      textoExibidoNaTela("p", "The Secret Number é menor");
    } else {
      textoExibidoNaTela("p", `O número é até ${numerosMaximos}`);
    }
    tentativas++;
    chute = document.querySelector("input").value;
  }

  let palavraTentativas = tentativas > 1 ? "tentativas" : "tentativa";
  let mensagemDeTentativas = `Você acertou com ${tentativas} ${palavraTentativas}`;
  textoExibidoNaTela("h1", "BOA");
  textoExibidoNaTela("p", mensagemDeTentativas);
}

Nesse exemplo, o loop while irá continuar repetindo o bloco de código dentro dele enquanto o chute for diferente do número secreto. Dentro do loop, você verifica se o chute é maior ou menor que o número secreto e atualiza o valor do chute com o valor do input. Quando o chute for igual ao número secreto, o loop while será interrompido e você exibirá a mensagem de acerto na tela.

Espero que isso tenha te ajudado!

Se tiver mais alguma dúvida, é só me dizer.

Abraços e bons estudos!