Diseño del Trivial

Diseño del Cliente

  • JuegoTrivial: Hereda de la clase (Cliente.Base.)JuegoAbstracto y redefine los metodos necesarios para implementar la lógica del juego del Trivial. Se encarga de procesar los eventos que se producen en el PanelBaseTrivial y realizar las acciones asociadas a ese evento, y también de procesar los mensajes enviados por el servidor para la sincronización de la partida, como por ejemplo el abandono de un jugador o la respuesta a una pregunta.
  • ConfiguracionTrivial: Hereda de la clase (Cliente.Base.)DialogoConfiguracion y redefine sus métodos como necesita. Muestra las opciones configurables de una partida del juego, en este caso la dificultad y el número de jugadores posibles. Devuelve una instancia de DatosPartidaTrivial con esas opciones configurables. Al crear una partida se abre este Dialogo solicitando los datos.
  • PanelBaseTrivial: Hereda de la clase (Cliente.Base.)PanelBase y la complementa ofreciendo los metodos necesarios para la creación y configuración del panel que se va a utilizar para la partida del Trivial. Se encarga de mostrar la interfaz del juego y todos los gráficos que contiene. En este caso un panel que contiene otros paneles con la diferente información de preguntas, acertadas, categorías, jugadores, …
  • Categoría: Extiende la clase JPanel. Se trata de un panel estándar para mostrar tanto el título de la categoría en cuestión como la cantidad de aciertos en dicha categoría.
  • Pregunta: Extiende la clase JPanel. Se trata de un panel estándar para mostrar las preguntas, tanto el título como las opciones.

Diagrama UML del Cliente

UML_Trivial_Cliente.jpg

Diseño de la parte del Servidor

  • PartidaTrivial:Hereda de la clase (Modulos.Juegos.Servidor.)Partida redefiniendo los métodos para controlar el juego y llevar a cabo las acciones propias de la lógica del Trivial en el lado del servidor. Se encarga de procesar los mensajes que llegan desde el JuegoTrivial y realiza las acciones correspondientes a ellos.
  • InicioTrivial: Implementa (Modulos.Juegos.Servidor.)IInicioPartida, define el método iniciarPartida que permite obtener instancias de objetos de la clase PartidaTrivial.

Diagrama UML del Servidor

UML_Trivial_Servidor.jpg

Diseño de la Parte Común

  • DatosPartidaConecta4: Hereda de (Modulos.Juegos.Compartido.)DatosPartida que contiene los datos que ajustan los parámetros de una partida. En nuestro caso añadimos constantes para los estados, los colores y las categorías.
  • PreguntaComun: Estándar de Pregunta que se envía desde el Servidor al Cliente.

Diagrama UML de la Parte Común

UML_Trivial_Comun.jpg

Diagrama de Secuencia

secuencia.jpg

Protocolo de Mensajes

Aparte de los mensajes de control (transparentes al desarrollador del juego) se envían los siguientes mensajes:

Evento Origen Destino Datos Descripción
nivel Servidor Cliente Integer Se envía a los jugadores el nivel de partida al que están jugando
Categorias Servidor Cliente (String) ArrayList Se envía a los jugadores una lista con las categorías de la partida
Estado Servidor Cliente Integer Se le indica al jugador el estado en el que debe establecerse.
Pregunta Servidor Cliente ArrayList (0: PreguntaComun, 1: Integer) Se le envía al usuario una pregunta que debe mostrar y un Integer que es el estado que deberá aplicarse
puntuacion Servidor Cliente HashMap Se envía las puntuaciones de los Jugadores
iniciar Servidor Cliente HashMap Se inicia la partida y se adjunta el número máximo de preguntas por cada categoría
titulo Cliente Servidor null El cliente indica al Usuario que puede continuar la partida una vez terminada una pregunta o una partida
selecCategoria Cliente Servidor String Se informa al servidor que se ha escogido categoria y se envia.
respuesta Cliente Servidor String Se envía al servidor la respuesta del jugador