Algoritmos - markorovi/Projecto-1 GitHub Wiki

Comunicación

Para la comunicación entre los clientes, se implementó una solución con sockets y un decodificador. Se utilizó jackson para la codificación y decodificación de los mensajes de texto enviados mediante el socket para encapsularlos en formato JSON. El receptor convierte el String en JsonNode para realizar llamadas a este nodo y obtener información sobre las jugadas o partidas.

Formato de envío de mensajes a través de JSON.

Un mensaje puede contener lo siguiente:

  • declaración de carta
  • actualización de vida
  • actualización de maná
  • informe de abandono

Declaraciones de cartas.

Las posibles son las siguientes:

  • "carta seleccionada": "esbirros"
  • "carta seleccionada": "hechizos"
  • "carta seleccionada": "secretos"
  • "carta seleccionada": "curar"
  • "carta seleccionada": "dañar"
  • "carta seleccionada": "actualizar vida"
  • "carta seleccionada": "regalar carta"

Si el tipo de carta es esbirros, hechizos o secretos, obligatoriamente debe incluir la id en forma de String: "id": "0" (valor representativo)

Los esbirros tienen id desde 0 hasta 19. Los hechizos tienen id desde 0 hasta 9. Los secretos tienen id desde 0 hasta 9.

Actualización de vida.

Se debe incluir la vida actual del jugador: "vida": 1000 (valor representativo)

Actualización de maná.

Se debe incluir el maná actual del jugador: "maná": 200 (valor representativo)

Informe de abandono.

Si el jugador salta su turno, se debe informar así: "saltar": true caso contrario si desea continuar "saltar": false

Otros objetos no obligatorios

  • "mensaje": "mensaje" (valor representantivo)
  • no es necesario, sirve para especificar el afitrión al inicio de la partida.
  • "ip": "127.0.0.1" (valor representantivo)
  • solo lo envía el invitado al inicio de la partida para generar conexión
  • "puerto": "40000" (valor representantivo)
  • solo lo envía el invitado al inicio de la partida para generar conexión`