Tic-Tac-Toe Multiplayer Game

Lista de usuarios en línea
Chat en acción
Chat en acción
Lista de usuarios en línea
Chat en acción

Descripción

Implementacion de un videojuego multijugador por terminal utilizando sockets para la comunicación cliente-servidor, con funcionalidades de inicio de sesión, persistencia de sesión mediante cookies y un protocolo de comunicación personalizado. Este proyecto ayudo a consolidar mis habilidades en sistemas distribuidos y destaca por el diseño de un protocolo de comunicación y la experiencia práctica en programación de redes.

Funcionalidades principales

Protocolo de Comunicación

Los clientes envian mensajes al servidor en formato JSON:


{
  "action": "move",
  "data": {
    "gameId": "1234",
    "player": "X",
    "position": [0, 1]
  }
}

  

El servidor responde con el estado actualizado del juego:


{
  "status": "success",
  "data": {
    "board": [
      ["X", "O", "X"],
      ["O", "X", " "],
      [" ", " ", "O"]
    ],
    "nextPlayer": "O"
  }
}

  

Diagrama de arquitectura

ChatLive App

Cómo jugar

  • Inicia el servidor: java Server
    
    java Server
    
      
  • Inicia los clientes: java Client
    
    java Client1  
    java Client2  
    
      
  • Esperar a que un oponente se conecte. El registro e inicio de sesión se realizan automáticamente, generando un usuario y contraseña para cada cliente al ejecutar su clase correspondiente (Client1/Client2)
  • Juega introduciendo coordenadas (x,y) desde la terminal (ej. 1,2 para fila 1, columna 2), una a la vez.
  • Realizar movimientos en el tablero hasta que un jugador gane o se declare un empate.

Consulta la especificación completa en el repositorio.

Autenticación y Sesión

Accede al Proyecto

GitHub

Retos y Aprendizajes