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

Erro no código; Aula 9 Atividade 08

Segui atentamente as orientações do professor, mas quando rodo o código o console mostra um erro na linha 79 com a informação: "Uncaught SyntaxError: Unexpected end of input"

Analisei a função "verifica", que é chamada nesta linha, mas aparentemente não encontrei erros. O que pode estar errado?

Segue o código:

<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(3);

    console.log(segredos);

    segredos.push();

    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>
3 respostas
solução!

Tá faltando uma } na

 function sorteiaNumeros(quantidade) {
...
}

depois do for

Falta } na seguinte posição. Se não, a função fica em um loop infinito.

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!!!

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


        return segredos;

    }

Putz! Olhei, olhei e não percebi.

Obrigado!!