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

[Sugerencia] El codigo del curso tiene mejoras

Hola! Hice el codigo del juego del numero secreto paso a paso junto con los videos del curso, y note una mejora que se puede hacer:

Al final, para verificar que el algoritmo trabaje correctamente, Leonardo coloca dos "console.log" en la funcion generarNumeroSecreto, sin embargo, esos console log, al estar al inicio de la funcion, hace que se ejecuten cada vez que la funcion se llama a si misma, dando como resultado un exceso de informacion en la consola, eso llega a hacer confusa la informacion se muestra.

La solucion a eso es cambiar los "console.log" hacia el "else", cuando el numero sorteado no esta en el array, para que solo se muestren en la consola el array y el numero secreto que se genera, cuando un nuevo numero es agregado y no cuando el numero ya esta en la lista.

En el video no se nota, porque todo pasa muy rapido y no se alcanza a ver en la pantalla.

A continuacion muestro el codigo como se sugiere en la clase y la alternativa del codigo corregido.

function generarNumeroSecreto() {
    let numeroGenerado =  Math.floor(Math.random()*numeroMaximo)+1;
    console.log(numeroGenerado);
    console.log(listaNumerosSorteados);
    //Si ya sorteamos todos los números
    if (listaNumerosSorteados.length == numeroMaximo) {
        asignarTextoElemento('p','Ya se sortearon todos los números posibles');
    } else {
        //Si el numero generado está incluido en la lista
        if (listaNumerosSorteados.includes(numeroGenerado)) {
            return generarNumeroSecreto();
        } else {
            listaNumerosSorteados.push(numeroGenerado);
            return numeroGenerado;
        }
    }
}

OPCION CORREGIDA:

function generarNumeroSecreto() 
{
    let numeroGenerado = Math.floor(Math.random() * numeroMaximo) + 1; //floor para retornar solo numeros enteros;
    // si ya sorteamos todos los numeros posibles
    if(listaNumerosSorteados.length == numeroMaximo)
    {
        asignarTextoElemento('p', 'Ya se sortearon todos los numeros posibles');
    }
    else
    {
        // si el numero generado esta en la lista:
        if(listaNumerosSorteados.includes(numeroGenerado) )
            {
                return generarNumeroSecreto(); // Recursividad, la funcion se llama a si misma
            }
            else // Si el numero generado, no esta en la lista:
            {   
                listaNumerosSorteados.push(numeroGenerado);
                console.log(numeroGenerado);
                console.log(listaNumerosSorteados);
                return numeroGenerado;
            }
    }
}
2 respuestas
solución!

¡Hola Katia!

Gracias por compartir tu observación sobre el código del juego del número secreto. Es genial que hayas identificado una mejora que se puede hacer en el código. La sugerencia que propones tiene mucho sentido, ya que al mover los "console.log" hacia el "else", se evitará la repetición de información en la consola, lo que hará que sea más fácil de entender y depurar el funcionamiento del algoritmo.

La corrección que propones en el código parece muy acertada y seguramente ayudará a mejorar la legibilidad y claridad del proceso. Es importante tener en cuenta estos detalles para que el código sea lo más eficiente y comprensible posible.

Espero que hayas podido aplicar esta mejora en tu proyecto y que te haya resultado útil. Si tienes alguna otra duda o quieres compartir más observaciones, no dudes en hacerlo.

¡Espero haber ayudado y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios

Muy interesante!... Gracias por compartir.

Saludos.