Este proyecto implementa el juego "4 en raya" utilizando el modelo Cliente/Servidor. El servidor gestiona las conexiones de los clientes y controla el flujo del juego.
- C++17
- pthreads
La estructura del proyecto es la siguiente:
project_root/
├── include/
│ └── common/
│ └── game_logic.h
├── src/
│ ├── common/
│ │ └── game_logic.cpp
│ ├── server/
│ │ ├── servidor.cpp
│ │ ├── Makefile
│ │ └── README.md
│ └── client/
│ ├── cliente.cpp
│ ├── Makefile
│ └── README.md
├── build/
├── Makefile
└── README.md
Utilice el siguiente comando para compilar el proyecto:
make
Primero, ejecute el servidor especificando el puerto:
./build/servidor <puerto>
Luego, ejecute el cliente especificando la IP del servidor y el puerto:
./build/cliente <IP del servidor> <puerto>
Para ejecutar el servidor en el puerto 7777:
./build/servidor 7777
Para conectar un cliente al servidor en la IP 127.0.0.1
y puerto 7777
:
./build/cliente 127.0.0.1 7777
El cliente solicitará al usuario que ingrese una columna donde desea colocar su ficha. El servidor y el cliente alternarán los turnos hasta que haya un ganador o un empate.
-
Servidor:
- Levantar servicio y esperar por conexiones.
- Manejar múltiples conexiones simultáneamente.
- Seleccionar al azar quién comienza el juego.
- Solicitar y verificar las jugadas.
- Enviar resultados a los clientes.
- Mostrar estado de las conexiones y resultados en la terminal.
-
Cliente:
- Conectarse al servidor.
- Visualizar el tablero.
- Esperar por la indicación del servidor respecto de quién comienza.
- Indicar columna donde dejar caer la ficha.
- Visualizar el resultado.
Para más detalles sobre la compilación y ejecución del cliente y del servidor, consulte los siguientes documentos:
Las contribuciones son bienvenidas. Por favor, cree un fork del repositorio y realice un pull request con sus cambios.
Este proyecto implementa la parte del servidor del juego 4 en raya. El servidor maneja múltiples clientes concurrentemente, permitiendo que varios jugadores jueguen partidas independientes de 4 en raya al mismo tiempo.
project_root/
├── include/
│ └── common/
│ ├── game_logic.h
│ ├── server.h
│ └── client.h
├── src/
│ ├── common/
│ │ └── game_logic.cpp
│ ├── server/
│ │ ├── servidor.cpp
│ │ ├── Makefile
│ │ └── README.md
├── build/
Para compilar el servidor, navega al directorio src/server
y ejecuta el siguiente comando:
make
Para ejecutar el servidor, navega al directorio build
y ejecuta el siguiente comando:
./servidor <puerto>
Por ejemplo:
./servidor 7777
Para limpiar los archivos compilados, navega al directorio src/server
y ejecuta el siguiente comando:
make clean
Este proyecto implementa la parte del cliente del juego 4 en raya. El cliente se conecta a un servidor y permite a los jugadores interactuar con el juego enviando sus movimientos y recibiendo el estado actualizado del tablero.
project_root/
├── include/
│ └── common/
│ ├── game_logic.h
│ ├── server.h
│ └── client.h
├── src/
│ ├── common/
│ │ └── game_logic.cpp
│ ├── client/
│ │ ├── cliente.cpp
│ │ ├── Makefile
│ │ └── README.md
├── build/
Para compilar el cliente, navega al directorio src/client
y ejecuta el siguiente comando:
make
Para ejecutar el cliente, navega al directorio build
y ejecuta el siguiente comando:
./cliente <direccion IP> <puerto>
Por ejemplo:
./cliente 127.0.0.1 7777
Para limpiar los archivos compilados, navega al directorio src/client
y ejecuta el siguiente comando:
make clean