1
resposta

Repetição de caracteres

E aí Guys!

O meu código estava repetindo números , após fazer uma verificação ele aparentemente parou de repetir os números, agora ele está repetindo f, alguém pode me dizer poque?

"ó código comentado é sobre as possíveis formas de fazer a solução do problema"

<meta charset="UTFT-8">    

<input/>
<button>Compare 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 position = 0; position > segredos.length;position++) {

                if(segredos[position] == numeroAleatorio) {

                    achou = true;
                    break;
                }
            }

            if(achou == false) {

            segredos.push(numeroAleatorio);
            numero++;

            }    

            }

        }

        return segredos;

    }

    var segredos = sorteiaNumeros(5);

    /*
    var segredos = [];
    segredos.push(Math.round(Math.random() * 10));
    segredos.push(Math.round(Math.random() * 10));
    segredos.push(Math.round(Math.random() * 10));
    segredos.push(Math.round(Math.random() * 10));
    segredos.push(Math.round(Math.random() * 10));

    */

    /*
    var segredos = [];
    segredos.push(sorteia);
    segredos.push(sorteia);
    segredos.push(sorteia);
    segredos.push(sorteia);
    segredos.push(sorteia);

    */

    console.log(segredos);

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

    function verifica() {

        var achou = false;
        for(var position = 0; position < segredos.length;position++) {

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

            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>
1 resposta

Oi Hands existe uma diferença entre declarar uma função chamar uma função e associar a chamada de uma função a um evento.

Quando queremos declarar uma função utilizamos:

function sorteia() {

Quando queremos chamar a função

var numeroAleatorio = sorteia();

Assim o número sorteado será retornado e atribuído a variável numeroAleatorio.

E quando queremos associar a um evento:

button.onclick = verifica; 

Assim a função só será chamada se o botão for clicado.

Portanto não sei se você pode observar a única mudança que você precisará fazer em seu código será alterar essa linha:

 var numeroAleatorio = sorteia;

para:

 var numeroAleatorio = sorteia();

Espero ter ajudado e bons estudos.