Alexandre Alapetite & Brice Andujar   (12/2000)

Rapport projet réseau "Bataille Navale"

Sommaire

Quitter

Sources du programme:

Sommaire

Mode d'emploi


Utilisation du programme:

Liste des commandes :

bombe <nom> <texte>
grille <nom>
INCONNU = 0 BATEAU = 6 TOUCHE = 7 COULE = 8 EAU = 9
PORTE_AVION = 5 SOUS_MARIN = 4 CUIRASSE = 3 PNEUMATIQUE = 2
chat <nom> <texte>
nom <nouveau nom>
nouveau
isPret (pour Maître de jeu)
debut (pour Maître de jeu)
fin (pour Maître de jeu)
dir
moi
fenetre
aide

Le 1er joueur qui se connecte au serveur est "Maître de jeu". C'est lui qui décide de démarrer la partie. C'est le seul aussi à pouvoir connaître le nombre de joueurs prêts (avec "isPret").


Déroulement d'une partie

  1. Il peut commencer par personnaliser son nom. ex: nom paul.
  2. Il peut ensuite choisir d'afficher le chat et les grille dans des fenêtres distinctes avec la commande fenetre puis en donnant les tty des fenêtres de destination.
  3. Il faut alors creer une nouvelle grille avec la commande nouveau. Exemple de saisie d'un bâteau: B5 v pour un bâteau vertical en B5.
  4. Le "maître de jeu" peut à ce moment là connaître le nombre de joueurs qui sont prêts (qui ont fini leur grille) avec la commande isPret.
  5. Le "maître de jeu" décide alors de démarrer la partie avec la commande debut.
  6. Dès lors, aucun joueur ne peut joindre la partie. Ils peuvent néanmoins dialoguer avec tout le monde.
  7. La bataille commence
  8. Chaque joueur bombarde alors un adversaire. ex: bombe paul B5
  9. Le joueur qui se fait bombarder le sait immédiatement.
  10. Le résultat d'un tour de jeu est communiqué à tout le monde dès que tous les joueurs ont tirés.
  11. On passe alors au second tour de jeu.
  12. Dés qu'un joueur est mort, il ne peut plus joueur.
  13. Le dernier joueur encore vivant gagne la partie. On retourne alors à l'étape 1 pour une nouvelle partie.
  14. Les clients qui se sont connectés durant la partie peuvent participer à la suivante.
Sommaire

Description de la partie réseau.

Description du système d'écoute

Côté serveur et côté client, on utilise un select pour pouvoir écouter plusieurs ports à la fois.
Par exemple, le serveur écoute autant de ports que de clients, plus un port public, et l'entrée standard (console).
Le client écoute à la fois une boîte privée du serveur et l'entrée standard (console).

Description de la connection

Lorsqu'un client fait une demande de connection au serveur (sur le port public), le serveur crée un boîte privée spécifiquement pour lui.
Les dialogues entre ce client et le serveur se feront par l'intermédiaire de cette boîte privée.

Description du protocole utilisé entre les clients et le serveur

Nous avons mis en place un protocole en mode texte.
Chaque message est précédé d'un mot clef permettant de savoir ce qu'il contient.
Tous les messages passent par le serveur, il n'y a pas de liaison directe entre deux clients.

Sommaire

Conclusion

Notre programme respecte le cahier des charges. Tous les points ont été traités.
L'accent a été mis sur la clarté du code, dans une optique d'évolutivité.
En effet, le projet a été fait en C++, avec des classes et des méthodes bien distinctes.
La modularité permet de rajouter des fonctions aisément, sans avoir à analyser profondement l'ensemble duprogramme.

Sommaire
https://alexandre.alapetite.fr

Quitter