2
respostas

um duvida com a função ```sorteia```

<meta charset="UTF-8">

<input/>
<button>Compare com o número que estou pensando!</button>

<script>

    function sorteia(){

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

    function sorteiaNumeros(quantidade){
        var segredos = [];
        var numero = 1;

        while(numero <= quantidade){

            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;
    }

//segredos = Math.round(Math.random() * [10,10,10,10]); //(testar isto depois.)

     var segredos = sorteiaNumeros(sorteia());
    console.log(segredos);

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

    function verifica() {

        var achou = false;

        for(var posicao = 0; posicao < segredos.length; posicao++){
        if(segredos[posicao] == input.value) {
            alert("Parabéns! Você acertou o número secreto");
            achou = true;
            break
        }
    }
        if(achou == false){
        alert("Você ERROU!");
}
        input.value = "";
        input.focus();
}



    var button = document.querySelector("button");
    button.onclick = verifica;
</script>

Especificamente na linha 46, var segredos = sorteiaNumeros(sorteia());. eu fiz esta modificação para que "o numero de números a ser sorteado também fosse sorteado". O problema é que há a chance deste numero ser 0, como faço para que este erro pare de ocorrer (assim como o professor explicou na linha 22 : if(numeroAleatorio != 0){ )?

Eu deveria fazer a alteração na criação da função? Ou depois? agradeço quem puder responder.

2 respostas

Olá, Gustavo.

Você poderia criar uma função que chama o sorteia e, enquanto for 0, fica tentando.

function sorteiaPositivo() {
    var sorteado = 0;
        while (sorteado == 0) {
            sorteado = sorteia(); 
       }
       return sorteado;
}

Aí é só usar essa função.

Tente essa maneira. Há uma outra maneira meio maluca que, se você tiver curiosidade, te falo depois!

Oi Gustavo B. Felix você ainda tem alguma dúvida ou já foi solucionada ?