Class Partida
java.lang.Object
Modelo.Partida
Representa una sesión concreta de juego.
Coordina el flujo de la partida: gestión de turnos, estados y resultados.
Una partida puede estar en curso, pausada o finalizada.
- Version:
- 2.0
- Author:
- JP-Aceves
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate EstadoPartidaEstado actual de la partida: EN_CURSO, PAUSADA o FINALIZADA.private LocalDateFecha de inicio de la partida.private LocalDateFecha de finalización de la partida.private intIdentificador único de la partida.private JuegoJuego al que se está jugando en esta partida.Lista de jugadores que participan en la partida.private intÍndice del jugador que tiene el turno actual enlistaJugadores. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanComprueba si un usuario participa en esta partida.voidFinaliza la partida cambiando su estado a FINALIZADA y registrando la fecha de fin.getFecha()Devuelve el jugador con mayor puntuación al final de la partida.intgetId()getJuego()Devuelve el usuario que tiene el turno actual.intDevuelve la puntuación actual de un jugador delegando en el juego.Devuelve la lista completa de puntuaciones de todos los jugadores.voidpausar()Pausa la partida cambiando su estado a PAUSADA.voidReanuda una partida pausada restaurando el estado del juego.voidAvanza al siguiente turno de forma circular.toString()Devuelve una representación legible de la partida con id, juego, fecha y estado.
-
Field Details
-
id
private int idIdentificador único de la partida. -
fecha
Fecha de inicio de la partida. -
fechaFin
Fecha de finalización de la partida. Null mientras no haya terminado. -
turnoActual
private int turnoActualÍndice del jugador que tiene el turno actual enlistaJugadores. -
estadoActual
Estado actual de la partida: EN_CURSO, PAUSADA o FINALIZADA. -
juego
Juego al que se está jugando en esta partida. -
listaJugadores
-
-
Constructor Details
-
Partida
Crea una nueva partida en estado EN_CURSO. La fecha de inicio se registra automáticamente en el momento de creación.- Parameters:
id- identificador único de la partidajuego- juego al que se va a jugarlistaJugadores- lista de usuarios que participan
-
-
Method Details
-
pausar
public void pausar()Pausa la partida cambiando su estado a PAUSADA. El estado del juego debe ser serializado porGestorPartidasllamando agetJuego().serializarEstado()tras este método. -
reanudar
Reanuda una partida pausada restaurando el estado del juego.- Parameters:
estadoSerializado- String con el estado guardado previamente
-
finalizar
public void finalizar()Finaliza la partida cambiando su estado a FINALIZADA y registrando la fecha de fin. -
getJugadorActual
Devuelve el usuario que tiene el turno actual.- Returns:
- usuario cuyo turno es el actual
-
siguienteTurno
public void siguienteTurno()Avanza al siguiente turno de forma circular. Cuando llega al último jugador vuelve al primero. -
contieneJugador
Comprueba si un usuario participa en esta partida.- Parameters:
u- usuario a buscar- Returns:
truesi el usuario está en la partida,falseen caso contrario
-
getPuntuacion
Devuelve la puntuación actual de un jugador delegando en el juego.- Parameters:
u- usuario del que se quiere la puntuación- Returns:
- puntuación del usuario en el juego actual
-
getPuntuaciones
Devuelve la lista completa de puntuaciones de todos los jugadores.- Returns:
- lista de
PuntuacionJugador
-
getGanador
Devuelve el jugador con mayor puntuación al final de la partida.- Returns:
- usuario ganador, o
nullsi no hay jugadores
-
getId
public int getId()- Returns:
- identificador único de la partida
-
getFecha
- Returns:
- fecha de inicio de la partida
-
getFechaFin
- Returns:
- fecha de finalización de la partida, o
nullsi no ha terminado
-
getEstadoActual
- Returns:
- estado actual de la partida
-
getJuego
- Returns:
- juego asociado a esta partida
-
getListaJugadores
-
toString
-