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

mesmo acertando o numero o programa fala que errou

estou há algumas horas tentando descobrir o q há de errado com meu código, já testei em alguns navegadores diferentes , já que, outro exercício deste mesmo curso tive o mesmo problema e descobri que era o navegador. comparei o código com o disponibilizado ao final do curso e para mim eles são idênticos.

meu código:

<meta charset="utf-8">

<input/>
<button>Compare com o numero secreto:</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.lenght; posicao++){

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


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

            }
        }

        return segredos;

    }    

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

    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("voce ACERTOU!");
                achou = true;
                break;
            }
        }

        if(achou == false) {
            alert("Voce Errou");
        }

        input.value ="";
        input.focus();
    }

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

    button.onclick = verifica;

</script>

código do professor:

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

    console.log(segredos);

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

Olá Felipe, sou apenas um estudante como você mas espero poder ajudar pois eu cometi o mesmo erro. No seu código está escrito a palavra lenght 2 vezes, quando o correto é length, fazendo essa correção acredito que o programa deverá funcionar.

Obrigado pela dica Jeder!

realmente era esse o problema, agora lembro que o professor avisou que isso poderia acontecer e era importante verificar. porem eu olhei por horas e não vi esse erro, mesmo com os códigos um do lado do outro.

obrigado!

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