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

Programa não abre

Fui fazendo escrevendo o programa junto com a aula, eis que na hora de digitarescrevo meth e quando corrijo pra "Math" e recarrego a pagina o programa simplesmente não abre

<meta charset="UTF-8">

<input/>
<button>Compare com o meu segredo</button>

<script>

    var segredos = [5,7,10,2,3];

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

Bom dia, Thiago! Como vai?

Onde vc tenta escrever Math e obtém esse erro? O código que vc colou na sua mensagem está funcionando corretamente.

Aprendizado para a vida: Sempre indente seu código de forma correta! Seguindo essa boa prática vc verá que facilitará na hora de analisar o seu código!

Grande abraço e bons estudos!

bem, o problema talvez náo esteja no Math, mas quando eu tento abrir o chrome não carrega, e se eu escrevo "meth" ele carrega e acusa erro na linha!

Thiago, a minha dúvida é onde esse problema que vc está falando está ocorrendo pois nesse código que vc postou não há a utilização do Math e ele funciona corretamente.

Cole aqui o código que está dando problema e eu darei uma olhada pra poder te ajudar.

desculpe, estava com a cabeça tão cheia que mandei o codigo errado, esse é o correto mais especificamente na linha 10 é o Math que estou falando

<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) {

            segredos.push(sorteia());

        }

        return segredos;
    }

    var segredos = sorteiaNumeros(3);

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

    function verifica() {

       var achou = false;

       for(var posicao = 0; posicao < segredos.lenght; 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>
solução!

Thiago, dei uma olhada aqui no seu código e ele tem 2 problemas!

O primeiro é que ele logo de cara entra num loop infinito por isso que não aparece nada no navegador quando vc abre ele:

function sorteiaNumeros(quantidade) {

     var segredos = [];

     var numero = 1;

     while(numero <= quantidade) {

          segredos.push(sorteia());

     }

     return segredos;
}

var segredos = sorteiaNumeros(3);

Veja que nesse trecho vc chama a função sorteiaNumeros() passando o valor 3 como parâmetro. No entanto, a condição de parada do seu while é numero <= quantidade. Como o valor de numero é sempre 1 e o valor de quantidade é sempre3, o seuwhileentra em loop infinito. Para resolver o problema vc deve incrementar o valor da variávelnumero` a cada vez que inserir um novo número no seu vetor:

function sorteiaNumeros(quantidade) {

     var segredos = [];

     var numero = 1;

     while(numero <= quantidade) {

          segredos.push(sorteia());
          numero++;

     }

     return segredos;
}

Resolvido isso, o segundo problema é que a sua verificação se o usuário acertou ou não um número tbm está quebrada pq no for de verificação dentro da função verifica vc escreveu segredos.lenght quando o correto é segredos.length, ficando assim:

function verifica() {

     // restante do código omitido

     for (var posicao = 0; posicao < segredos.length; posicao++) {
          // restante do código omitido
     }

     // restante do código omitido

}

Grande abraço e bons estudos!

nossa muito obrigado, estou desde ontem quebrando a cabeça nisso e não conseguia resolver :D

Por nada, Thiago! Sempre que tiver qualquer dúvida é só mandar aqui no fórum!

Grande abraço e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software