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

O programa só alerta erro, mesmo acertando o número.

Por algum motivo meu programa só exibe o alerta de erro, mesmo o número colocado no input estando certo. O que poderia ser?

<meta charset="UTF-8">

<input/>
<button>Compare com o número que estou pensando!</button>

<script>
    function sorteia(){
        return Math.round(Math.random() * 10);
    }
    function numeroSegredos(quantidade){
        var segredos = []
        var numero = 1

        while(numero <= quantidade){
            var numerosAleatorios = sorteia();
            var existe = false;

            for(var posicao = 1; posicao < segredos.length; posicao++){
                if(segredos[posicao] == numerosAleatorios){
                    existe = true;
                    break;
                }
            }
            if(existe == false){
                segredos.push(numerosAleatorios)
                numero++
            }
        }
        return segredos
    }
     var segredos = numeroSegredos(4);
    var input = document.querySelector("input");

    function verifica() {

        if(segredos == input.value) {
            alert("Parabéns! Você acertou o número secreto");
        }
        else {
            alert("Infelizmente você errou!");
        }
    }
    console.log(segredos)
    var button = document.querySelector("button");
    button.onclick = verifica;
</script>
5 respostas
solução!

Oi Mateus, tudo bem meu aluno? Então, na comparação do que você digitou com os dados do array você esta fazendo assim:

if(segredos == input.value) {
            alert("Parabéns! Você acertou o número secreto");
        }
        else {
            alert("Infelizmente você errou!");
        }

A variável segredos é um array e você não pode compará-la diretamente com o que o usuário digitou. Precisa iterar nesse array e comparar cada posição com o o que foi digitado. Pegou a ideia?

Ah! Entendi, obrigado Flávio!

Vou marcar como solucionado, tudo bem Mateus? Se pintar alguma dúvida nessa modificação, abre um post novo? Me ajuda a controlar o que acontece no fórum.

Só pra ter certeza, eu terei que fazer um loop pra analisar posição por posiçao se o input bate com alguma delas?

Isso mesmo! :)