Batalla naval (Cliente - servidor) en C bajo linux
$800-1600 ARS
货到付款
Características:
Hay 2 binarios: binario servidor, binario jugadores
La transmisión de información entre el servidor y los jugadores se realiza por TCP(sockets)
Jugadores solo pueden ingresar a la sala si el servidor está corriendo
Máximo 2 jugadores por partida
Puede haber N partidas al mismo tiempo
Comunicación entre jugadores siempre se realiza a través del servidor.
Servidor:
Tendrá un listado de clientes conectados y conoce qué cliente juega con quién
Tendrá un Thread por cada cliente. Utiliza ese thread para atender los mensajes del jugador.
Jugador:
Tendrá un Thread para atender los mensajes que le lleguen del servidor. Y otro para recibir información por consola
Tendrá en memoria una matriz de 10 x 10 caracteres donde guardará el tablero de mis barcos y otra de 10 x 10 con el tablero de las bombas que tiré.
Recibe por argumento el nombre del jugador y ubicación de los barcos. Ej: ./jugador A 01 02 03 10 30
argv[1] = nombre del jugador
argv[2] = ubicación de un barco
argv[2][0] = ubicación de un barco en x
argv[2][1] = ubicación de un barco en y
Pasos de ejecución:
Inicia el server
Iniciamos un jugador pasandole por argumento nombre de jugador.
Servidor le envia al jugador el listado de jugadores que estan disponibles en la sala(que no iniciaron un juego)
Jugador deberá ingresar por consola el nombre del contrincante
Servidor debe avisarle al jugador 2 que el jugador 1 desea iniciar un juego
Cuando se crea la sesión de juego, el servidor le da la orden a 1 jugador de comenzar el juego. Esto indica que el jugador debe escribir 2 números indicando la posición x e y que desea atacar.
El proceso del jugador deberá enviar esa información al servidor. Quien se la pasa al otro jugador.
Jugador destino deberá fijarse si en esa coordenada hay o no un barco. Si hay barco responde un hundido, caso contrario agua. El mensaje llega al jugador que inició la partida
Servidor le pide al otro jugador que juege
Si soy jugador y le dieron a todos mis barcos. Respondo Fin
项目ID: #12346378