1
resposta

Se a quantidade de números sorteados for maior que 10 não funciona.

É uma limitação nesse código, caso a quantidade de elementos do vetor segredos seja maior que 10, o código não funciona já que ele ficará tentando sortear um número que não se repita na última posição, o que é impossível já que todos os elementos possíveis já foram sorteados...prendendo o programa em um loop infinito.

<meta charset="UTF-8">

<body>
    <input type="text">
    <button>Compare com o meu segredo</button>

    <script>

        function sorteia() {

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

        function sorteiaNumeros(quantidade) {

            var segredos = [];
            var numero = 0

            while (numero < quantidade) {

                var numeroAleatorio = sorteia();

                if (numeroAleatorio != 0) {

                    var achou = false;

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

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

                    if (achou == false) {

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

            return segredos;
        }

        var segredos = sorteiaNumeros(8);

        console.log(segredos);

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

        input.focus();

        function verifica() {

            var achou = false;

            for (let 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>
</body>
1 resposta

Olá, Victor!

Acredito que você terá sucesso se alterar o 10, neste ponto return Math.round(Math.random() * 10), por um número maior (por exemplo 100).