Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Alert() de erro só é exibido uma vez

O código funciona perfeitamente, porém quando solicitado para comparar novamente um número errado o alert() não aparece. Exemplo, se o número sorteado for 1 e eu chutar 2, na primeira vez o alert() aparece, porém se eu tentar novamente não. O que acontece e como pode ser resolvido?

Desde já agradeço

<meta charset = "UTF-8">

<input>
<button>Comparar</button>


<script>

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

    let button = document.querySelector("button");
    button.onclick = compara;

    let segredos = [Math.round(Math.random()*10)];

    var achou = false;

    function compara() {
        for (let posiçao = 0; posiçao < segredos.length; posiçao++){

            if (input.value == segredos[posiçao]) {
                alert("Você acertou!");
                achou = true;
                break;
            } 
        }    

            if (achou == false) {
                alert("Você errou!");
            }

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

    }
</script>
1 resposta
solução!

a variável " var achou = false; " deve está dentro da função "comparar();" para que toda vez que a função for executada comece a variável achou seja definida como false. motivo: toda vez que vc acerta, a função define a variável como "true" e então ela vai ficar assim até vc recarregar a pagina, caso contratio toda vez que vc errar o navegador vai chegar em

            alert("Você acertou!");
            achou = true;
             break;

            if (achou == false) {
                  alert("Você errou!");
        }

e não vai conseguir executar a msg de "Você errrou!