Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

[Proyecto] Resumen de clases: Documentación final

Saludos estimados,

Subo el resumen de clase de lo comprendido por mí, en dos partes ya que excede los 5000 caracteres.

<meta charset="utf-8"> <!compatibilidad con todos los navegadores>
<br>
<h1>Juego secreto</h1>
<hr>
<input>                                                <!crear un campo de formulario para entrada de usuario>
<button>Verificar si acerto con el secreto</button>    <!crear un botón clicable para realizar una acción>

<script>
    //¿Qué voy hacer?
    //Un juego secreto usando array con números aleatorios
    //¿Cómo se va a realizar?
    //Los elementos del array serán verificados por la entrada del usuario
    //Los elementos del array serán valores aleatorios
    //Evitar numeros repetidos en la varaible generada del array
    //¿Cuántos elementos tendrá el array?
    //Dependerá del parámetro cantidad
    // Procedimiento:
    //* Creación de una función para generar números aleatorios
    //* Creación de la función sorteoNumeros para obtener los números aleatorios en la varaible var secreto = []
    //* Llamar a la función sorteos
    //* Obtener los datos de entrada del usuario
    //* Crear la función verificar
    //  - Comprueba si el dato del usuario es igual o diferente al de los elementos en el array
    //* Mejorar la interacción del usuario
    //  - creando la etiqueta button
    //* Asociación de button con verificar al momento de dar click


    // Crear una función para obtener números aleatorios
    function aleatorio(){                   // no va arecibir parámetros
        return Math.round(Math.random()*10)   // la función me devuelve un valor aleatorio
    }

    // Crear una función donde yo pase por parámetros la cantidad de números que quiero en mi array

    function sorteoNumeros(cantidad){   // le agreagamos el parámetro de cantidad
        // creamos un loop con la cantidad de veces que tenemos en la función, para esta ocación serán 4 repeticiones
        var secreto = [];  //creación de variable sin definir nada en el array; esta varaible solo funcionara en este bloque,
                            // no tendrá problemas con mi variable secretos fuera de mi función.
        var contador = 1;   
        while (contador <= cantidad){           //b) pasa el loop while, contador desde 1 hasta 4
            var numeroAleatorio = aleatorio();  //c) Generar a un número aleatorio, para eso llama a la función aleatorio
            console.log(numeroAleatorio)    // para visualizar los números aleatorios generados
            var encontrado = false              //d) inicializamos primeramente como falso

            // Creación de interacción para validación de número repetidos
            //e) iniciamos un loop interno, para que en nuestra variable secreto no exista un numero aleatorio repetido en cada una de las rodadas del while

            if (numeroAleatorio !=0){           //Para evitar la inclusión de valores cero al array
                for(var posicion = 0; posicion <= secreto.length; posicion++){  
                    if(numeroAleatorio == secreto[posicion]){
                    encontrado = true           //Niega la entrada a la variable del array y vuelve a generarse otro número aleatorio
                    break;                      //Parar un interacción al cumpplirse una condición

                    }

                }
                //f) Si y solo si
                if(encontrado == false){            //cuando no se encuetra ningún número repetido
                secreto.push(numeroAleatorio);  // puedo añadir un valor a var secreto = [];
                contador++;1                    // recién ahí puedo contabilizar mi interacción

                }
            //¿qué sucede si mi sentencia estuviera afuera?
            //contador++;1  // si esta afuera, al generarse la interacción puede encontrar números repetidos, entonces va a ingresar menos valores al arreglo



            }


        }
        return secreto;                     // g) return valores aleatorios de mi interacción hacia mi función.
    }

2 respuestas
solución!

parte 2

// Operación de la función sorteoNumeros
     //1. LLama a mi función sortear números; escribo 4, para informale que es la cantidad de números a entregar
     //2. Crea una variable array vacia, sin conocer su longuitud
     //3. Le doy una iniciación desde 1 hasta 4
     //4. Paso por el loop while para generar mis 4 interacciones 
     //5. Genero el primer número aleatorio, llamando a la función aleatorio
     //  - Este numero debe ser != O para contabilizar mi interación y validar mi primera condición if
     //6. Al no tener número repetido, termino la interaación for y agrego el número generado en while con la función push a mi array secreto.
     //   Contabilizo la primera interacción. Adicionamos ese número aleatorio con nuestra función push
     //7. Al generar mi segundo número, pasa nuevamente por for:
     //  * al comprobar que es un número repetido dentro del array, break terminará la interacción y generara otro nuevo número aleatorio
     //  * al comprobar que no hay un número igual en el array, continua a la condición encontrado == false 
     //  * agregar al array y contabilizar nuestra segunda interacción
     //8. Repite el procedimeinto para la interacción 3
     //9. Repite el prodecimiento para la interacción 4  
     //10. returna los valores del array en la varaible secreto
     //11. Observamos en la consola los números generados
     //12. Creamos un consolo.log (numero aleatorio), para visualizar los números aleatorios generados


    var secreto = sorteoNumeros(4);           //a) llamo a sorteos y le paso como parámetro a 4
    console.log(secreto)  //para mirar en consola de desarrollador los valores que tenemos en la variable

    var input = document.querySelector("input");  // pasa todo lo ingresado en HTML a JavaScript    
    input.focus();                                // Para enfocar inmediatamente en la casilla al cargar el programa

                // Creación de función verificar
    function verificar(){
        var encontrado = false;                                 // para verificación de elementos y cambio de valor falso a true

        //loop para cargar datos
        for(var posición = 0;posición <secreto.length;posición++){ 
            //iniciación = 0, desde el index 0 del array
            //condición: que la iniciación va hasta la longuitud del array
            //contador
            if(parseInt(input.value) == secreto[posición]){     //condición de comparación: entre el dato ingresado y algún elemento del array
                alert("Usted acerto");
                encontrado = true;                              // transformación de dato booleano, solamente al coincidir el dato del usuario con el del array
                break;                                          // para evitar interacciones innecesarias al coincidir datos

            }
        }
        //Creación de condición: En caso de no encontrar un valor igual al que ingresamos  
        if(encontrado == false){                             
            alert("Usted erró")
        }

        input.value = "";                       // para dejar en blanco el formulario de entrada despues de usarse
        input.focus();                          // para focalizarse inmediatamente en la casilla o formulario de entrada luego de verificar
    }




    var button = document.querySelector("button") //captura al objeto button en HTML a JavaScript

    // asociación de la función verificar al dar click
    button.onclick = verificar; // verificar; sin () hace una asociación a la función                           
                                // verifificar(); hace un llamado de la función
</script>

Nota: Aún debo mejorar en mi documentación, pero creo esta entendible. En caso de ser utilidad, pueden mejorarlo

Muy buena explicacion! compañer@