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

Arreglos, recursividad.

Para evitar que se repitan los números, se va a utilizar una lista para almacenar los números ya sorteados.

Se implementará una función generarNumeroSecreto que se encargará de generar un nuevo número y verificar si ya está en la lista.

Si el número ya está en la lista, la función se llamará a sí misma de forma recursiva hasta generar un número que no se haya sorteado antes.

Se utilizarán métodos de JavaScript como includes para verificar si un número está en la lista, y push para agregar un número a la lista.

Se debe tener cuidado con la condición de salida de la recursividad, ya que si no se controla bien, puede causar un problema de ejecución infinita.

2 respuestas

¡Hola Rafael!

Entiendo que estás trabajando en la implementación de una función en JavaScript para generar un número secreto y verificar si ya ha sido sorteado, utilizando recursividad. La idea es que la función se llame a sí misma hasta que genere un número que no esté en la lista de números sorteados, evitando así la repetición.

Basándome en el contexto que compartiste, parece que estás teniendo dificultades con la condición de salida de la recursividad, ya que puede causar un problema de ejecución infinita si no se controla adecuadamente. Es importante establecer una condición que detenga la recursividad en un momento dado para evitar que la función se llame infinitamente.

Una posible solución sería establecer una condición que verifique si ya se han sorteado todos los números posibles, de modo que la recursividad se detenga en ese punto. Por ejemplo, podrías verificar si la lista de números sorteados ya contiene todos los números posibles, y en ese caso, detener la recursividad.

Aquí te dejo un ejemplo de cómo podrías implementar esta condición de salida en tu función:

function generarNumeroSecreto(listaNumerosSorteados) {
  // Lógica para generar un número aleatorio

  if (listaNumerosSorteados.length === cantidadTotalNumerosPosibles) {
    // Si la lista ya contiene todos los números posibles, detenemos la recursividad
    return null; // O cualquier valor que indique que no se pudo generar un número secreto
  }

  // Resto de la lógica para verificar si el número ya fue sorteado y llamar recursivamente si es necesario
}

Recuerda que este es solo un ejemplo y que debes adaptar la condición de salida a tu lógica específica. Espero que esta sugerencia te ayude a resolver el problema de la ejecución infinita en tu función recursiva.

Espero haber ayudado y ¡buenos estudios!

disculpe y el return null, hace que el juego se termine? o se tendria que generar otro parametro para terminar el juego?