1
resposta

olá,o console não revela o quais são os números do jogo da adivinhação, o que posso fazer?

<meta charset="UTF-8">

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

<script>
         function sorteia() {
             return Math.round(Math.random() * 10);
        }
        function sorteianumeros(quantidade) {
            var segredos = [];

            while(numero <= quantidade) {

                 var numero = 1
                 var numeroaleatorio = sorteia();
                 var achou = false
                 if(numeroaleatorio !== 0) {
                    for(var posicao = 0; posicao < segredos.length; posicao++){  

                 }
                     if(segredos[posicao] == numeroaleatorio){
                            achou = true;
                            break;
             }
         }   

            if(achou == false) {
                segredos.push(numeroaleatorio)
                 numero++;
       } 
         }
           return segredos;        
        }

                     var segredos = [];
                     var numero = 1;
                     var input = document.querySelector("input");
                        input.focus();
                    var segredos = sorteianumeros(3)
 console.log(segredos);
    function verifica() {

        var achou = false;

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

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

             alert("Você ERROU!!!!!!!!");
                 achou = true;  
                 break;
            }            
        }
        if(achou == false) {
               alert("Você ERROU!!!!!!!!");         
        }

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

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

    button.onclick = verifica;
</script>
1 resposta

Dê uma atenção a function sorteianumeros, o primeiro ponto é que voce declara a variavel numero dentro do while:

function sorteianumeros(quantidade) { var segredos = [];

        while(numero <= quantidade) {

             var numero = 1

Essa variavel tem a função de informar para o while quantas vezes ele vai se repetir, se voce declarar ela dentro do laço todas as vezes que o loop do while terminar a numero será incrementada mas ao iniciar de novo, ela vai receber novamente o valor de 1, daí voce tem um ciclo infinito.

Outra coisa que recomendo você observar é o fechamento dos seus IF, While e For, a maioria deles dentro dessa função não está fechando no lugar correto, vou deixar meu código como exemplo, a unica diferença para o seu é que eu usei um for no lugar do While, mas ambos devem funcionar:

function sorteiaNum(quantidade) {

    var segredos = [];

    for(i = 0; i < quantidade; i++) {

        achou = false;
        numAleatorio = sorteio(10);

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

            if(i2 == numAleatorio) {

                achou = true;
                break;
            }
        }
        if(achou == false){

            segredos.push(numAleatorio);
        }
    }
    return segredos;
}