Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
3
respuestas

me queda en loop mi codigo, ayuda !

<meta charset="utf-8">

<input/>

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



<script> 
    function aleatorio() {

        Math.round(Math.random() * 10);

     } 

     function sortearNumeros(cantidad) {

         var secretos = [];
         var contador = 1;

         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)


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

    var encontrado = false;

    function verificar() {

        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ó")

        }

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

    }



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


</script>
3 respuestas

Dentro de tu codigo faltaron acomodar correctamente las variables, ademas de un return

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Te dejo en el codigo como comentario donde faltaron :)

<meta charset="utf-8">

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

<script> 
    function aleatorio() {
        // Debe llevar el return, para que retorne el valor obtenido
        return Math.round(Math.random()*10);
    } 

    function sortearNumeros(cantidad) {

        var secretos = [];
        var contador = 1;

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

            if(numeroAleatorio != 0) {
                for(var posicion = 0; posicion < secretos.length; posicion++) {
                    if (numeroAleatorio == secretos[posicion]) {
                        // Debe ser igualdad con dos simbolos ==
                        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() {
        // Debe ir dentro de la funcion 
        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ó");
        }
        input.value= ("");
        input.focus();
    }

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

</script>

Gracias por compartir el código me ayudo a encontrar lo que estaba fallando, pero tengo una observación

if(numeroAleatorio != 0) { for(var posicion = 0; posicion < secretos.length; posicion++) { if (numeroAleatorio == secretos[posicion]) { // Debe ser igualdad con dos simbolos == encontrado == true; break; } }

esta incorrecto la parte de encontrado == true la sintaxis correcta es encontrado = true; ya que le estás asignado el valor true no igualándolo 
Ya al final del curso se fue como hilo de media y me perdí XD