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

O aleatório continua gerando ZERO!

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

<script>

function sorteia(){

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

}

function sorteiaNumeros(quantidade){

    var segredos = [];

    var numero = 1;

    while(numero <= quantidade) {

        var numeroAleatorio = sorteia();

        if (numeroAleatorio !==0){

            var achou = false;

            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 = sorteiaNumeros(10);
console.log(segredos);
4 respostas

Felipe, seu código é só isso? Você nao fechou a tag do script.

Segue o código completo;

<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 = [];

    var numero = 1;

    while(numero <= quantidade) {

        var numeroAleatorio = sorteia();

        if (numeroAleatorio !==0){

            var achou = false;

            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 = sorteiaNumeros(10);
console.log(segredos);

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

function verifica() {

    var achou = false;    
    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>
solução!

você fechou um if antes:

function sorteiaNumeros(quantidade){

    var segredos = [];

    var numero = 1;

    while(numero <= quantidade) {

        var numeroAleatorio = sorteia();

        if (numeroAleatorio != 0){

            var achou = false;

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

                if(segredos[posicao] == numeroAleatorio) {
                    achou = true;
                    break;
                }
            } 
//aqui fecha um if e um for
            if (achou == false){
                segredos.push (numeroAleatorio);
                numero++;
            }
        }
    }
//aqui fecha dois ifs e um while
    return segredos;
}

no seu ta fechando antes, por isso ta gerando o zero

Realmente agora deu certo, muito obrigado pela ajuda!!!