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

eu corrigi um erro , mas mesmo assim não gera

<meta charset="UTF-8">

<input/>
<button> compare com meu segredo </button>

<script>

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


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

function verifica (){

    for(var posicao = 0; posicao <4; posicao++) {

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

        alert (" vc acertou");
    }
    else {  

    alert(" vc errou !!!! ");
    }
}

    input.value = "";   
    input.focus(); 
}
    var button = document.querySelector("button");

    button.onclick = verifica ;

</script>
2 respostas
solução!

Isnard, não tá gerando o que? Eu rodei teu código e ele alerta quando erra e acerta.

Oi isnard santos neto eu identifiquei um problema no seu algoritmo, o código do jeito que está mesmo já tendo acertado ou errado o número vai continuar verificando as outras posições do array e imprimindo por exemplo vc acertou, vc errou, vc errou.

Primeiro você deve "percorrer" todas as posições do array, depois você imprime se achou ou não. A lógica ficaria assim:

<meta charset="UTF-8">

<input/>
<button> compare com meu segredo </button>

<script>
    var input = document.querySelector("input");
    var button = document.querySelector("button");
    var segredos = [5,7,10,2]; 
    input.focus();

function verifica (){
    var achou=false;
    for(var posicao = 0; posicao <4; posicao++) {
        if ( input.value == segredos[posicao]){
             var achou=true;
             alert ("vc acertou");
              break;
        }
    }    
     if(!achou){
         alert ("vc não acertou");
     }

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

    button.onclick = verifica ;

</script>

Perçeba que utilizei uma variável booleana para indicar se achei ou não o número ela inicializa como não achei e caso eu encontre esse número no meu array de segredos eu atribuo que achei(true) e já mostro o alert e quebro a execução com o break, ao final do loop for se não encontrei aí sim imprimo o alert vc não acertou.

Espero ter ajudado e bons estudos.