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": truecaso 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`