Class Juego
java.lang.Object
Modelo.Juego
- Direct Known Subclasses:
PasaPalabra, tresenraya, TresEnRaya
Clase abstracta que representa un juego genérico dentro de la aplicación.
Define la estructura común a todos los juegos (nombre, estado de finalización y puntuaciones por jugador) y declara los métodos abstractos que cada subclase debe implementar con su propia lógica de juego.
- Version:
- 1.0
- Author:
- JP
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected StringDescripción breve del juego mostrada en el menú de selección.protected booleanIndica si el juego ha finalizado.(package private) ArrayList<PuntuacionJugador> Lista de puntuaciones de cada jugador participante en la partida actual.protected StringNombre identificador del juego (ej: "Pasapalabra", "TresEnRaya"). -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract voiddeserializarEstado(String estado) Reconstruye el estado del juego a partir del String guardado en disco.Devuelve la descripción del juego.abstract StringDevuelve una representación en texto del estado actual del juego.Devuelve el nombre del juego.intgetPuntuacion(String username) Devuelve la puntuación actual del jugador con el username indicado.Devuelve la lista completa de puntuaciones de todos los jugadores.abstract voidInicializa el estado del juego antes de empezar una partida.booleanIndica si el juego ha finalizado.abstract StringSerializa el estado actual del juego en un String para guardarlo en disco cuando la partida se pausa.voidsumarPuntos(String username, int n) Suma n puntos al jugador con el username indicado.abstract voidterminar()Marca el juego como finalizado.
-
Field Details
-
nombreJuego
Nombre identificador del juego (ej: "Pasapalabra", "TresEnRaya"). -
descripcion
Descripción breve del juego mostrada en el menú de selección. -
juegoFinalizado
protected boolean juegoFinalizadoIndica si el juego ha finalizado. Se pone a true al llamar a terminar(). -
listaPuntuacionPorJugador
ArrayList<PuntuacionJugador> listaPuntuacionPorJugadorLista de puntuaciones de cada jugador participante en la partida actual.
-
-
Constructor Details
-
Juego
-
-
Method Details
-
inicializar
public abstract void inicializar()Inicializa el estado del juego antes de empezar una partida. Cada subclase define qué significa inicializar: cargar preguntas, limpiar el tablero, resetear contadores, etc. -
getEstadoTexto
Devuelve una representación en texto del estado actual del juego. La vista utiliza este método para mostrar la información al jugador sin conocer los detalles internos de cada juego.- Returns:
- String con el estado actual del juego.
-
serializarEstado
Serializa el estado actual del juego en un String para guardarlo en disco cuando la partida se pausa. Cada subclase define su propio formato.- Returns:
- String con el estado serializado.
-
deserializarEstado
Reconstruye el estado del juego a partir del String guardado en disco. Es el proceso inverso a serializarEstado().- Parameters:
estado- String con el estado serializado previamente.
-
terminar
public abstract void terminar()Marca el juego como finalizado. Cada subclase puede añadir lógica adicional (calcular ganador, registrar resultado, etc.) antes o después de poner juegoFinalizado a true. -
sumarPuntos
Suma n puntos al jugador con el username indicado. Si el jugador no tiene aún entrada en la lista de puntuaciones, se crea una nueva para él automáticamente.- Parameters:
username- Username del jugador al que sumar puntos.n- Cantidad de puntos a sumar.
-
getPuntuacion
Devuelve la puntuación actual del jugador con el username indicado. Si el jugador no tiene entrada en la lista, devuelve 0 por lo mismo que está obligado a devolver un int.- Parameters:
username- Username del jugador a consultar.- Returns:
- Puntuación del jugador, o 0 si no existe en la lista.
-
getPuntuaciones
Devuelve la lista completa de puntuaciones de todos los jugadores. Utilizado por Partida al finalizar para registrar los resultados.- Returns:
- ArrayList con todas las PuntuacionJugador de la partida.
-
isTerminado
public boolean isTerminado()Indica si el juego ha finalizado. La vista lo consulta después de cada turno para saber si debe cerrar la ventana de juego.- Returns:
- true si el juego ha terminado, false si sigue en curso.
-
getNombre
-
getDescripcion
-