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

Não sei se era para ser assim rs...

Meu código roda blz, e se ir acertando ele da o Alert bonitinho "você acertou". Porém quando se erra a primeira vez, ele da todas as respostas seguintes como erradas (falsas). Tem algum erro no código ? ou é meio bugado assim mesmo ? rs segue o código :

`

6 respostas

rsrssr bugou de vez rssrrs até aqui ... segunda tentativa.

<meta charset="UTF-8">

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

<script>
 var segredos = [5,3,2,6];
 var posicao = 0;
 var input = document.querySelector("input");
 input.focus();

  function verifica()
{
      var achou = false;
          for (posicao ;posicao < segredos.length; posicao++)
      {
              if(input.value == segredos[posicao])
              {
                alert("Você acertou");
               achou = true;
               break;
              }      
      }
             if(achou==false)
           {
            alert("Você errou!!");
           }

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


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


</script>

Oi Pedro tudo bem?

Nessa linha

for (posicao ;posicao < segredos.length; posicao++)

faltou colocar posicao=0

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

Espero ter ajudado!!!

Em função então eu tenho que declarar a variável dentro da mesma? Não se pode fazer o que fiz, declarar no início do código?

solução!

Pode você declarou corretamente antes ela, porém só passa uma vez em

 var posicao = 0;

que é quando a página é carregada.

Só que a função verifica() é chamada toda vez que é clicado no botão. Na primeira vez que você clica posição é igual a 0, e no fim do código vira 4.

Porém na próxima vez que você chama posição está igual a 4, aí não verifica mais nada. Porque nem entra no loop for.

Por isso que temos que zera a variavel posicao no loop for.

Entendeu ?

Obrigado.

Disponha e bons estudos!!!