3
respuestas

Al poner opción incorrecta se me queda el código

3 respuestas
<meta charset="utf-8">
<input/>

<button>Verificar si acertó con el secreto</button>

<script>
    //var secreto = Math.round(Math.random()*10);

    var secreto = [3,5,7,9]


    var input = document.querySelector("input");//comando para tomar dato del input
    input.focus();// colocar el cursor en el input, para mejorar la experiencia del cliente

    //función
    function verificar() {

    // variable para encontrar
    var encontrado = false;
        // for para interar el arreglo
        for (var posicion = 0; posicion < 4; posicion++) {

            // cuerpo de la función
            if (parseInt(input.value) == secreto[posicion]) {
                alert("Usted acertó")
                encontrado = true;
                break;// si lo encuentra salir de una vez
            }
        }
        // condicional si erró, mostrar mensaje
        if (encontrado == false) {
            alert("Usted erró");
        }
            // reset de input
            input.value="";
            input.focus();
    }

    var button = document.querySelector("button");//comando para tomar dato del button
    button.onclick = verificar; // llamar la función verificar, para que analise si acierta el secreto


</script>

Hola, creo que tu error podría ser en esta validación

if(encontrado = false){
    alert("Usted erró");
}

si la colocaste de esta manera no estas comparando la variable encontrado con false por lo que tu código no mostrara ningun mensaje

if(encontrado == false){
    alert("Usted erró");
}

La manera correcta sería usando doble = para que se cumpla la sentencia y te muestre el mensaje de error.

Recuerda que no es lo mismo:

encontrado = false //Aquí estas asignando un valor al colocar un solo =
encontrado == false  //Aquí estas igualando un valor al colocar ==

muchas gracias