FrameWork (Servidor)

Partida

Clase ABSTRACTA que proporciona la funcionalidad común para todas las partidas (en el lado del servidor). Esta clase deberá extenderse para crear las partidas de los juegos concretos.

Descripción de los métodos:

protected abstract void accionesNuevoTurno(Jugador jugadorAnterior, Jugador jugadorNuevo)
Este método realiza las acciones que provoca un cambio de turno.

void aceptarDatos(int idCliente, java.lang.Object datos)
La partida debe almacenar para procesar los datos que reciba.

boolean anadirCliente(int idCliente, java.lang.Object mensaje)
Este método añade un cliente (jugador u observador) a la partida, siempre que éste pueda entrar.

protected void cambioDeTurno(Jugador jugador)
Este método se llama cada vez que un jugador solicita el fin de su turno.

protected void clienteAbandona(int idCliente)
Procesa los mensajes que le llegan a la partida indicando que un jugador ha abandonado.

protected void difundirMensaje(java.lang.String evento, java.lang.Object datos)
Envía un mensaje a todos los observadores y jugadores.

protected boolean estaEnPartida(int idCliente)
Busca entre los jugadores y observadores si existe alguien con el idCliente indicado, e informa del éxito o fallo en la búsqueda.

protected void generarEco(int milisegundos, java.lang.Object datos)
Genera un mensaje que será enviado de vuelta a la partida transcurrido el tiempo establecido.

protected java.util.Iterator<Jugador> iteradorJugadores()
Devuelve un Iterator que permite recorrer toda la lista de jugadores.

protected abstract void jugadorAbandona(Jugador jugador)
Este método realiza acciones dependientes de la partida concreta cuando un jugador abandona la misma.

protected Jugador jugadorActual()
Devuelve el jugador al que le corresponde el turno actual.

protected void jugadorAnadido(Jugador jugador)
Este método realiza acciones derivadas de la incorporación de un jugador a la partida.

protected Jugador obtenerJugador(int idCliente)
Si existe en la partida un jugador con el idCliente indicado, devuelve el jugador.

protected boolean permitirJugador(Jugador jugador)
Este método debe devolver un valor booleano que indique si un jugador puede entrar en la partida.

protected abstract void procesarDatos(Jugador jugador, java.lang.Object datos)
Este método recibe un mensaje enviado por un jugador.

public void run()
Hilo de un juego.

protected Jugador siguienteJugador(Jugador jugadorAnterior)
Decide el jugador que jugará el siguiente turno.

public void terminarPartida()
Hace que la partida termine, dejando de proporcionar todos los servicios a los clientes.