Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Não carrega

Olá pessoal!

Nâo sei qual o problema do meu código. Ele não carrega. Parece que tem um loop infinito. Poderiam me ajudar?

Esse programa pensou em 4 números de 0 a 10. Escreva um número na caixa abaixo, clique no botão e veja se você consegue acertar.

6 respostas

Fala Lucas tudo bem ?

Posta o codigo aqui mesmo pra ver se posso te ajudar.

Abraço

Esse programa pensou em 4 números de 0 a 10. Escreva um número na caixa abaixo, clique no botão e veja se você consegue acertar.

<meta charset="UTF-8">

Esse programa pensou em 4 números de 0 a 10. Escreva um número na caixa abaixo, clique no botão e veja se você consegue acertar.

<br><br>

<input>
<button>Compare com o meu segredo</button>

<script>

    function sorteio () {

        return Math.round(Math.random() * 10);
    }

    function sorteiaNumero (quantidade) {

        var segredos = [];

        var numero = 1;

        while (numero <= quantidade) {

            var numAleatorio = sorteio();

            var achei = false;

            for (posicao = 0; posicao < segredos.length; posicao++) {

                if (segredos[posicao] == numAleatorio) {

                    achei = true;
                    break;
                }
            }            

            if (achou == false) {

                segredos.push(numAleatorio);
                numero++;
            }
        }

        return segredos;
    }

    var input = document.querySelector("input");

    var segredos = sorteiaNumero(4);

    input.focus();

    var achou = false;

    function verifica () {

        for (var posicao = 0; posicao < segredos.length; posicao++){

                if (input.value == segredos [posicao]) {

        alert ("Você acertou!");
        achou = true;
        break;

            }

        }

        if (achou == false) {

        alert ("Você ERROU");
        }


    } 


    input.value = "";
    input.focus ();

        var button = document.querySelector("button");

    button.onclick = verifica;



</script> 

..... vou add no prox comentario

solução!

Lucas analisando seu codigo eu encontrei o que pode ser o problema

dentro do seu while, vc usa uma variavel chamada "achei" pra icrementar o numero até sair do while, porem no seu if vc esta usando um nome diferente "achou" pra validar se achou ou não.

o correto seria:

while(numero <= quantidade){

          var numAleatorio = sorteio();
          var achei = false;

          for (let posicao = 0; posicao < segredos.length; posicao++) {
              if(segredos[posicao] == numAleatorio){
                achei = true;
                break;
              }
          }

          if(achei == false){
            segredos.push(numAleatorio)
            numero++
          }

  }

Obrigado!