Class GestorPartidas
java.lang.Object
Controlador.GestorPartidas
Controlador responsable de gestionar el ciclo de vida de las partidas.
Coordina la creación, pausa, reanudación y finalización de partidas,
delegando la persistencia en GestorPersistencia.
- Version:
- 1.2
- Author:
- JP-Aceves, Adrián
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static intContador global de partidas creadas.Historial de partidas finalizadas durante esta ejecución.private PartidaPartida que se está jugando en este momento.private GestorPersistenciaCapa de persistencia para guardar y recuperar partidas pausadas. -
Constructor Summary
ConstructorsConstructorDescriptionGestorPartidas(GestorPersistencia persistencia) Construye el gestor con la implementación de persistencia indicada e inicializa el contador de ids leyendo los ficheros existentes en disco. -
Method Summary
Modifier and TypeMethodDescriptioncargarDatosPartida(int id) Carga el estado serializado de una partida pausada a partir de su id.voidFinaliza la partida actual, la añade al historial y elimina su fichero de pausa.Devuelve el historial completo de partidas finalizadas en esta sesión.Devuelve la partida que se está jugando en este momento.getPartidasUsuario(Usuario usuario) Filtra el historial devolviendo solo las partidas en las que participó el usuario.Devuelve un resumen legible de todas las partidas pausadas en disco.private voidLee los ids de las partidas pausadas en disco y fijacontadorIdal valor máximo encontrado.iniciarPartida(Juego juego, ArrayList<Usuario> jugadores) Inicializa el juego y crea una nueva partida con los jugadores indicados.Devuelve los identificadores de las partidas pausadas almacenadas en disco.listarPartidasUsuario(String username) Devuelve solo los ids de partidas pausadas en las que participóusername.voidPausa la partida actual y guarda su estado serializado en disco.reanudarPartida(int id, String datosCompletos, Juego juego, ArrayList<Usuario> jugadores) Reconstruye y reanuda una partida pausada a partir de los datos cargados de disco.
-
Field Details
-
contadorId
private static int contadorIdContador global de partidas creadas. Se inicializa leyendo los ficheros existentes en disco para evitar colisiones de id entre ejecuciones. -
partidaActual
Partida que se está jugando en este momento.nullsi no hay ninguna activa. -
listaPartidas
-
persistencia
Capa de persistencia para guardar y recuperar partidas pausadas.
-
-
Constructor Details
-
GestorPartidas
Construye el gestor con la implementación de persistencia indicada e inicializa el contador de ids leyendo los ficheros existentes en disco.- Parameters:
persistencia- implementación deGestorPersistenciaa usar
-
-
Method Details
-
inicializarContador
private void inicializarContador()Lee los ids de las partidas pausadas en disco y fijacontadorIdal valor máximo encontrado. Así cada nueva partida recibe un id único aunque la aplicación se haya reiniciado entre sesiones. -
iniciarPartida
Inicializa el juego y crea una nueva partida con los jugadores indicados. El id se asigna incrementandocontadorId, garantizando unicidad entre ejecuciones.- Parameters:
juego- juego que se va a jugarjugadores- lista de usuarios que participan- Returns:
- la
Partidarecién creada
-
pausarPartida
public void pausarPartida()Pausa la partida actual y guarda su estado serializado en disco. No hace nada si no hay ninguna partida activa. -
reanudarPartida
public Partida reanudarPartida(int id, String datosCompletos, Juego juego, ArrayList<Usuario> jugadores) Reconstruye y reanuda una partida pausada a partir de los datos cargados de disco. El parámetrodatosCompletostiene el formato"nombreJuego|estadoSerializado"tal como lo guardapausarPartida(). Para PasaPalabra se llama ajuego.inicializar()antes de deserializar, porque necesita cargar el rosco desde fichero antes de restaurar los estados.- Parameters:
id- id de la partida pausada (se reutiliza para la nueva Partida)datosCompletos- string leído del fichero: "nombreJuego|estadoSerializado"juego- instancia del juego ya creada conGestorJuegos.crearJuego()jugadores- lista de jugadores que participarán- Returns:
- la
Partidaya activa y lista para jugar
-
finalizarPartida
public void finalizarPartida()Finaliza la partida actual, la añade al historial y elimina su fichero de pausa. No hace nada si no hay ninguna partida activa. -
listarPartidasPausadas
-
listarPartidasUsuario
-
cargarDatosPartida
Carga el estado serializado de una partida pausada a partir de su id.- Parameters:
id- identificador de la partida- Returns:
- string con el estado serializado, o
nullsi no existe
-
getPartidaActual
-
getPartidasUsuario
-
getListaPartidas
-
getResumenPartidasPausadas
Devuelve un resumen legible de todas las partidas pausadas en disco. Cada entrada del array tiene el formato:"ID | nombreJuego | jugadores". Usado porVentanaAdminpara mostrar el listado de partidas pausadas.- Returns:
- lista de Strings con el resumen de cada partida pausada
-