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

[Dúvida] site travando após o primeiro alert

alert( "Seja Bem vindo meu nome é Arthur da Costa Silva, sou desenvolvedor de jogos e estou desenvolvendo um novo jogo, onde acertar o Número Secreto é o objetivo, espero que você se divirta jogando!" ); let NumeroSecreto = 100; // variável que indica o número secreto. console.log(NumeroSecreto); // exibe o número secreto no console. let chute; // exibe uma mensagem, e uma caixa para inserir o número secreto. let tentativas = 0;

// enquanto o chute for diferente do Número Secreto o comando a baixo irá se repetir!! while (chute != NumeroSecreto) { if (tentativas > 1) chute = prompt( insira aqui um valor de 0 a 600!! Você ja tentou (${tentativas}) vezes! );

if (chute == NumeroSecreto) { tentativas++; break; } else if (chute < NumeroSecreto) { alert(você errou, o Número secreto é maior quê (${chute})!); tentativas++; console.log(tentativas); } else if (chute > NumeroSecreto) { alert(você errou, o Número secreto é menor quê (${chute})!); tentativas++; console.log(tentativas); } }

if (tentativas > 1) { alert( parabéns você acertou o Número Secreto (${NumeroSecreto}), com (${tentativas}) tentativas! ); } else { alert( parabéns você acertou o Número Secreto (${NumeroSecreto}), com (${tentativas}) tentativa! ); } meu codigo só aparece o primeiro alert e para e trava a tela, não sei onde está o erro

1 resposta
solução!

Olá, Arthur, tudo bem?

O problema com o seu código é que você utilizou um loop while sem colocar nenhuma condição para o código dentro dele ser executado. Quando isso acontece, o navegador continua esperando que a condição seja satisfeita, mas isso nunca ocorre.

Alterei a seguinte condição no seu código:

if (tentativas > 1) chute = prompt(`insira aqui um valor de 0 a 600!! Você ja tentou (${tentativas}) vezes!`);

Para o seguinte:

  if (tentativas > 0) {
    chute = prompt(`insira aqui um valor de 0 a 600!! Você ja tentou (${tentativas}) vezes!`);
  } else {
    chute = prompt("insira aqui um valor de 0 a 600!!");
  }

Mudanças realizadas:

  1. Coloquei uma condição else caso seja a primeira tentativa do jogador;
  2. Alterei a condição do if de tentativas > 1 para tentativas > 0, como estava ele exibiria o alert do else 2 vezes antes de começar a exibir o alert dentro do if.

Lembre-se sempre de quando utilizar um loop while de que é importante sempre existir uma forma de o interpretador conseguir chegar até o final do código, caso contrário o navegador irá ficar travado enquanto tenta executar o código.

Também removi as condições do final do seu código, uma vez que é impossível sair do loop while sem incrementar o valor de tentativas

Segue todo o seu código com as correções aplicadas:

alert("Seja Bem vindo meu nome é Arthur da Costa Silva, sou desenvolvedor de jogos e estou desenvolvendo um novo jogo, onde acertar o Número Secreto é o objetivo, espero que você se divirta jogando!");
let NumeroSecreto = 100; // variável que indica o número secreto.
console.log(NumeroSecreto); // exibe o número secreto no console.
let chute; // exibe uma mensagem, e uma caixa para inserir o número secreto.
let tentativas = 0;

// enquanto o chute for diferente do Número Secreto o comando a baixo irá se repetir!!
while (chute != NumeroSecreto) {
  if (tentativas > 0) {
    chute = prompt(`insira aqui um valor de 0 a 600!! Você ja tentou (${tentativas}) vezes!`);
  } else {
    chute = prompt("insira aqui um valor de 0 a 600!!");
  }

  if (chute == NumeroSecreto) {
    tentativas++;
    break;
  } else if (chute < NumeroSecreto) {
    alert(`você errou, o Número secreto é maior quê (${chute})!`);
    tentativas++;
    console.log(tentativas);
  } else if (chute > NumeroSecreto) {
    alert(`você errou, o Número secreto é menor quê (${chute})!`);
    tentativas++;
    console.log(tentativas);
  }
}

alert(`parabéns você acertou o Número Secreto (${NumeroSecreto}), com (${tentativas}) tentativas!`);