# Class GestorJuegos

java.lang.Object
Controlador.GestorJuegos

public class GestorJuegos extends Object
Controlador encargado de gestionar los juegos disponibles en el sistema. Permite registrar juegos, instanciarlos y consultar sus propiedades. Autor: Ignacio del Peso Dominguez Versión: 2.0 Descripción: Clase que gestiona los juegos del sistema.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `private ArrayList<String>`
  `juegosDisponibles`
  Lista con los nombres de los juegos registrados en el sistema.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `GestorJuegos()`
  Constructor por defecto.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Juego`
  `crearJuego(String nombre)`
  Crea e inicializa una nueva instancia del juego indicado por nombre.
  `Juego`
  `crearJuego(String nombre, int nivel)`
  Crea e inicializa una nueva instancia del juego indicado por nombre y nivel (metodo con sobrecarga).
  `boolean`
  `esMultijugador(String nombre)`
  Indica si un juego es multijugador.
  `ArrayList<String>`
  `getJuegosDisponibles()`
  Devuelve una copia de la lista de nombres de juegos registrados en el sistema.
  `int`
  `getMaxJugadores(String nombre)`
  Devuelve el número máximo de jugadores permitidos para un juego.
  `void`
  `registrarJuego(String nombre)`
  Registra un juego en el sistema por su nombre si no estaba ya registrado.

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### juegosDisponibles

    private ArrayList<String> juegosDisponibles
    Lista con los nombres de los juegos registrados en el sistema.

- ## Constructor Details

  - ### GestorJuegos

    public GestorJuegos()
    Constructor por defecto. Inicializa la lista de juegos disponibles vacía.

- ## Method Details

  - ### registrarJuego

    public void registrarJuego(String nombre)
    Registra un juego en el sistema por su nombre si no estaba ya registrado.
    Parameters:
      `nombre` - nombre del juego a registrar

  - ### crearJuego

    public Juego crearJuego(String nombre)
    Crea e inicializa una nueva instancia del juego indicado por nombre.
    Parameters:
      `nombre` - nombre del juego ("PasaPalabra", "TresEnRaya", …)
    Returns:
      instancia de Juego correspondiente, o null si el nombre no existe

  - ### crearJuego

    public Juego crearJuego(String nombre, int nivel)
    Crea e inicializa una nueva instancia del juego indicado por nombre y nivel (metodo con sobrecarga).
    Parameters:
      `nombre` - nombre del juego ("PasaPalabra", "TresEnRaya", …)
    Returns:
      instancia de Juego y Nivel correspondiente, o null si el nombre no existe

  - ### esMultijugador

    public boolean esMultijugador(String nombre)
    Indica si un juego es multijugador.
    Parameters:
      `nombre` - nombre del juego a consultar
    Returns:
      true si el juego admite varios jugadores, false si es para un solo jugador

  - ### getMaxJugadores

    public int getMaxJugadores(String nombre)
    Devuelve el número máximo de jugadores permitidos para un juego.
    Parameters:
      `nombre` - nombre del juego a consultar
    Returns:
      número máximo de jugadores (2 para TresEnRaya, 1 para el resto)

  - ### getJuegosDisponibles

    public ArrayList<String> getJuegosDisponibles()
    Devuelve una copia de la lista de nombres de juegos registrados en el sistema.
    Returns:
      ArrayList con los nombres de los juegos disponibles