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`