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

Erro na execução

Executo o programa no navegar, escolho um número para fazer os testes das posições igual o instrutor fez no vídeo. O problema é que a exibição do alert está sendo executada 4 vezes antes da próxima tentativa. Revisei meu código e não encontrei o erro, preciso de ajuda.

<meta charset="UTF-8">

<input/>
<button> Compare com o meu segredo </button>

<script>

    var segredos = [5,7,10,2];

    var segredo = Math.round(Math.random() * 10);
    var input = document.querySelector("input");
    input.focus();

    function verifica(){
        for(var posicao = 0; posicao < 4; posicao++){
            if(input.value    == [posicao]) {

            alert("Você acertou!");
        } else {
            alert("Você errou.");
            break;
        }

        }


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

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

</script>
3 respostas
solução!

Oi Matheus!

Pelo o que entendi do final da aula, precisamos criar uma variável para interromper o loop do alert. essa variável é a "achou = false / true" Ou seja, se encontrou a resposta certa, damos o valor de true a variável "achou" e encerramos a leitura da função "verifica()". A seguir, precisamos criar mais uma condição com "if( )"... Ou seja, rodamos a primeira etapa da "verifica( )" e não acertamos, então vamos para a condição se "achou == false". e se "achou == false", preciso que o programe crie o alerta "vc errou". então tirei o break da segunda parte do seu código (no caso de chute errado). Assim, se o usuário errar, o programa vai ler a função "verifica ( )" do início, dando mais uma chance ao usuário.

Ah, tirei do seu código a linha "var segredo = Math.round(Math.random() 10);", pq como vc definiu os valores, não precisamos mais pedir ao programa que escolha um número aleatório.

Segue abaixo o código "corrigido". Coloco entre aspas pq não sei se era isso mesmo que vc queria... Espero ter ajudado e não confundido rsrs

<meta charset="UTF-8">

<input/>
<button> Compare com o meu segredo </button>

<script>

    var segredos = [5,7,10,2];

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

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

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

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

</script>

Até mais :)

Barbara, muito obrigado! Ajudou bastante!

Perfeito Bárbara!