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

Menssagem de alert aparecendo mesmo depois de parar a função usando o comando break, não sei o que fazer :/

Já revisei diversas vezes e não consigo encontrar o problema. Está aparecendo o alert de erro mesmo depois que (achou == true) e ter pedido para o programa parar usando o comando break. Gostaria que quando o usuário acertesse o segredo, o programa fosse finalizado e não aparecece o Alert de Erro. Agradeço muito quem poder me ajudar nesse problema!!!

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>

    <input type="text">
    <button>Adivinhe meu segredo</button>

    <script>

        function senhaSorteia() {

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

        }

        function senhaNumeros(quantidade) {

            var segredos = [];

            var numero = 1;

            while(numero <= quantidade) {

                var numeroAleatorio = senhaSorteia();

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

        console.log(segredos);

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

        function verifica() {

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

                var validador = false;    

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

                    alert("Parabéns, você acertou!!!");

                    validador == true;

                    break;

                }

            }

            if(validador == false) {

                alert("VocÊ ERROU!");    

            }

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

        }  

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



    </script>

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

Olá! Estou iniciando por aqui então peço desculpas se falar alguma besteira...

Mas acho que na linha 76, logo após o alerta de acerto, na hora do validador receber true, tem 2 sinais de igual, então ele não ta recebendo.

Nossa amigo era isso mesmo! Muitíssimo obrigado, gratidão.

Pra você ver, um pequeno detalhe faz toda diferença!

Li e reeli o código varias vezes e não percebi que tinha um sinal a mais de igual, vlw mesmo!