DAI 2024-2025 - Practical work 2 - Thiébaud Jonathan & Rothen Evan #478
JONATHAN-THIEBAUD
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Jeu de bataille navale en réseau
Description du projet
Pour ce travail pratique 2 nous souhaitons créer un jeu de bataille navale multi-joueurs en ligne où les joueurs peuvent se connecter à un serveur pour s'affronter. Chaque joueur devra placer ses bateaux sur une grille pour attaquer celle de son adversaire. Le but est de détruire tous les bateaux de l'adversaire
Protocole
Utilisation de TCP (Transport Control Protocol) pour les connexions client-serveur
Commandes
JOIN : Connexion au serveur. 2 joueurs pour démarrer la partie
PLACE : <bateau_id> : Placement d'un bateau [id] à une position spécifique
ATTACK : : Attaque un emplacement de la grille de l'adversaire
STATUS : Etat de la partie (bateaux coulés, cases attaquées etc.)
QUIT : Permet de quitter la partie en cours
Gestion des erreurs
Utilisation de code d'erreur et de succès pour chaque actions
Architecture client-serveur
Serveur :
Ecoutes les connexions entrantes et gère les parties
Gère l'arrivée d'un deuxième joueur lancer une partie (2 joueurs associés à une partie)
Gère les échanges de messages entre les deux joueurs ainsi que les message de gestion d'erreur/succès
Clients :
Envoi de commandes au serveur pour le placement des bateaux et les attaque de case
Affichage de sa grille avec les case attaquées et le statut de la partie
Concurence et thread :
Le serveur doit gérer plusieurs connexions en parallèle, avec un thread dédié pour chacun
Utilisez de structures de données synchronisées pour gérer les grilles et les états de parties
En cas de déconnexion, le serveur libère les ressources associées au joueur et avertit son adversaire
Docker :
Création d'un conteneur Docker pour le serveur, pour faciliter le déploiement
Le client peut également pourrait aussi être conteneurisé (à voir)
Beta Was this translation helpful? Give feedback.
All reactions