Solucionado (ver solución)
Solucionado
(ver solución)
3
respuestas

Juego de adivinacion me da siempre "usted erró"

Hola a todos, gracias por la ayuda de antemano. No se porque me da como que no acertó el numero, veo en la consola los números que tiro el programa y aunque ponga uno correcto me da la respuesta de erró y no encuentro el error...

<meta charset="utf-8">


<input/>
<button>Verificar si acertó el numero secreto</button>

<script>

    function aleatorio(){
        return Math.round(Math.random()*10);
    }

    function sortearNumeros (cantidad){
        var contador = 1;
        var secretos = [];

        while(contador<=cantidad){
            var numeroAleatorio = aleatorio();
            var encontrado = false;

            if (numeroAleatorio != 0){
                    for (var posicion = 0; posicion < secretos.length; posicion++){
                    if (numeroAleatorio == secretos[posicion]) {
                        encontrado = true;
                        break;

                    }
                }

                if (encontrado == false){
                    secretos.push(numeroAleatorio);
                    contador++
                }
            }

        }

        return secretos

    }
    var secretos =  sortearNumeros(4);


    console.log(secretos)

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

    function verificar() {

        var encontrado = false;

            for(var posicion = 0; posicion.length; posicion++){

                if (parseInt(input.value) == secretos[posicion]) {
                alert("Usted acertó");
                encontrado = true;
                break;
            }

        }

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


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


</script>
3 respuestas

Hola Daniel, Está muy bien el código, solo 2 detalles dentro de la función verificar():

1) La 2da indicación del for debe ser: posicion < secretos.length // vos habías puesto solamente --> posicion.length

2) if (encontrado == false) está fuera de la función (chequeá bien los cierres de llaves)

Debajo te paso la función verificar pero con las corrección para que lo puedas ver

Espero haber sido de ayuda. Saludos!

function verificar() {
        console.log("click")
        var encontrado = false;
        for(var posicion = 0; posicion < secretos.length; posicion++){
            if (parseInt(input.value) == secretos[posicion]) {
                alert("Usted acertó");
                encontrado = true;
                break;
            }
        }
        if (encontrado == false){
            alert("Usted erró");
        }
    }

Gracias, por mas que lo miraba no encontraba el error

solución!

Por nada. Si te sirvió la respuesta no olvidés marcarla como "solucionado" por si otro compañero tiene la misma consulta.

Saludos!