Class Partida

java.lang.Object
Modelo.Partida

public class Partida extends Object
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 Details

    • id

      private int id
      Identificador único de la partida.
    • fecha

      private LocalDate fecha
      Fecha de inicio de la partida.
    • fechaFin

      private LocalDate 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 en listaJugadores.
    • estadoActual

      private EstadoPartida estadoActual
      Estado actual de la partida: EN_CURSO, PAUSADA o FINALIZADA.
    • juego

      private Juego juego
      Juego al que se está jugando en esta partida.
    • listaJugadores

      private ArrayList<Usuario> listaJugadores
      Lista de jugadores que participan en la partida.
  • Constructor Details

    • Partida

      public Partida(int id, Juego juego, ArrayList<Usuario> listaJugadores)
      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 partida
      juego - juego al que se va a jugar
      listaJugadores - 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 por GestorPartidas llamando a getJuego().serializarEstado() tras este método.
    • reanudar

      public void reanudar(String estadoSerializado)
      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

      public Usuario 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

      public boolean contieneJugador(Usuario u)
      Comprueba si un usuario participa en esta partida.
      Parameters:
      u - usuario a buscar
      Returns:
      true si el usuario está en la partida, false en caso contrario
    • getPuntuacion

      public int getPuntuacion(Usuario u)
      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

      public ArrayList<PuntuacionJugador> getPuntuaciones()
      Devuelve la lista completa de puntuaciones de todos los jugadores.
      Returns:
      lista de PuntuacionJugador
    • getGanador

      public Usuario getGanador()
      Devuelve el jugador con mayor puntuación al final de la partida.
      Returns:
      usuario ganador, o null si no hay jugadores
    • getId

      public int getId()
      Returns:
      identificador único de la partida
    • getFecha

      public LocalDate getFecha()
      Returns:
      fecha de inicio de la partida
    • getFechaFin

      public LocalDate getFechaFin()
      Returns:
      fecha de finalización de la partida, o null si no ha terminado
    • getEstadoActual

      public EstadoPartida getEstadoActual()
      Returns:
      estado actual de la partida
    • getJuego

      public Juego getJuego()
      Returns:
      juego asociado a esta partida
    • getListaJugadores

      public ArrayList<Usuario> getListaJugadores()
      Returns:
      lista de usuarios que participan en la partida
    • toString

      public String toString()
      Devuelve una representación legible de la partida con id, juego, fecha y estado.
      Overrides:
      toString in class Object
      Returns:
      String con los datos principales de la partida