2
respostas

O navegador sequer carrega este código.

<meta charset="UTF-8">
<h1>Exercício de adivinhação.</h1>
<h3>16/06/2020</h3>
<input/>
<button>Insira aqui</button>
<script>

    function sorteia() {

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

    function sorteiaNumeros(quantidade) {

        var segredos = [];

        var contador = 1;

        while(contador <= quantidade) {

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

                var achou = false;

                var numeroGerado = sorteia();

                if(numeroGerado == segredos[posicao]) {

                    achou = true;
                    break;
                }
            }

            if(achou == false) {

                segredos.push(numeroGerado);
                contador++
            }        
        }

        return segredos;
    }

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

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

    function verifica() {

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

            var achou = false

            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>

Pessoal, estou tentando concatenar os conhecimentos da última aula, mas quando carrego este código no Chrome ele sequer carrega a página. Alguém pode me ajudar a identificar o erro? Grato.

2 respostas
function sorteiaNumeros(quantidade) {

        var segredos = [];

        var contador = 1;

        while(contador <= quantidade) {

            var achou = false;

            var numeroGerado = sorteia();

Eu fui alterando coisas dentro do código para ver se algo funcionava e tudo funcionou quando eu tirei as variáveis "segredos" e "contador" de dentro do while da função sorteiaNumeros. Funcionou, mas eu não entendi o motivo. Então se alguém ainda puder me esclarecer, eu agradeço.

Saudações, prezados!

Um fator importante que devemos relembrar ao declarar variáveis dentro de funções é a exclusividade da variável para a função em que ela foi declarada. Ou seja, ela não funcionaria fora da função de origem. Creio que seria esse o problema.

Att, Davi M.