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

Não entendo porque meu codigo nao funciona

<meta charset="UTF-8">

<input/>
<button>Advinhar</button>

<script>

    alert("Vou pensar em uma quantidade de números que vão de 0 a 10, acerte um deles pelo menos!");
    var quantosNumerosVaoSerPensados = parseInt(prompt("Quantos números de 0 a 10 você deseja que eu pense?"));

    var input = document.querySelector("input");
    input.focus();
    var button = document.querySelector("button");
    var  segredos = [];
    var achou = false;
    var contador = 1;

    function sorteiaNumeroAleatorio() {

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

    function popularArray(quantidade){

        var numerosPensados = [];

        while(contador <= quantidade){

            var numeroAleatorio = sorteiaNumeroAleatorio();

            for(var posicaoNoArray = 0; posicaoNoArray < numerosPensados.length; posicaoNoArray++){

                if(numerosPensados[posicaoNoArray] == numeroAleatorio){

                    achou = true;
                    break;
                }
            }

            if(achou == false){

                numerosPensados.push(numeroAleatorio);    
                contador++;
            }
        }
        return numerosPensados;
    }

    segredos = popularArray(quantosNumerosVaoSerPensados);
    function verifica() {

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

            if(input.value == segredos[posicao]) {

                alert("Parabéns os números pensados eram " + segredos);
                acerto = true;
                break;
            }
        }    
        input.focus();
        input.value = "";
            if(!acerto) {

                alert("Sorry dude, you mistaked! LOSERRR!");
            }    
    }

    button.onclick = verifica;

</script>
3 respostas

Marcelo, o erro está aqui abaixo

var quantosNumerosVaoSerPensados = parseInt(prompt("Quantos números de 0 a 10 você deseja que eu pense?"));

Não se pode usar o parseInt em algo que não é um número. O parseInt serve para forçar o tipo do valor recebido para número com casa decimal.

Recomendo ver de novo na aula e prestar bastante atenção nessa linha e lembre-se: O parseInt() não recebe nada que não seja um número. Se ele receber, ele dá erro

Veja se isto te ajudar!

var quantosNumerosVaoSerPensados = prompt("Quantos números de 0 a 10 você deseja que eu pense?");
        quantosNumerosVaoSerPensados = parseInt(quantosNumerosVaoSerPensados);
<!DOCTYPE html>
<html>
<head>
    <title>Test Forum</title>
</head>
<body>

    <input type="text" />
    <button>Advinhar</button>

    <script>

        alert("Vou pensar em uma quantidade de números que vão de 0 a 10, acerte um deles pelo menos!");
        var quantosNumerosVaoSerPensados = prompt("Quantos números de 0 a 10 você deseja que eu pense?");
        quantosNumerosVaoSerPensados = parseInt(quantosNumerosVaoSerPensados);

        var input = document.querySelector("input");
        input.focus();
        var button = document.querySelector("button");
        var  segredos = [];
        var achou = false;
        var contador = 1;

        function sorteiaNumeroAleatorio() {

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

        function popularArray(quantidade){

            var numerosPensados = [];

            while(contador <= quantidade){

                var numeroAleatorio = sorteiaNumeroAleatorio();

                for(var posicaoNoArray = 0; posicaoNoArray < numerosPensados.length; posicaoNoArray++){

                    if(numerosPensados[posicaoNoArray] == numeroAleatorio){

                        achou = true;
                        break;
                    }
                }

                if(achou == false){

                    numerosPensados.push(numeroAleatorio);    
                    contador++;
                }
            }
            return numerosPensados;
        }

        segredos = popularArray(quantosNumerosVaoSerPensados);
        function verifica() {

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

                if(input.value == segredos[posicao]) {

                    alert("Parabéns os números pensados eram " + segredos);
                    acerto = true;
                    break;
                }
            }    
            input.focus();
            input.value = "";
                if(!acerto) {

                    alert("Sorry dude, you mistaked! LOSERRR!");
                }    
        }

        button.onclick = verifica;

    </script>

</body>
</html>
solução!

Oi Marcelo Pereira ainda tem alguma dúvida ou já foi solucionada?