User Tools

Site Tools


rx:projet-2014

Projet MIAGE Réseaux 2013-2014 : le jeu du pendu

Encadrant : Ouattara Dramane

Date limite : dimanche 4 mai 2014

Présentation

Il s'agira de réaliser un jeu du pendu basique en réseau en s'appuyant sur les sockets TCP/IP en mode connecté. Le travail consistera à définir un protocole de couche applicatif pour permettre un dialogue entre le client et le serveur. Ce mini-projet sera développé en groupe de 4 étudiants aux maximum.

Principe du jeu

Le client qui désire jouer une partie, initie une connexion au serveur avec une demande pour débuter une nouvelle partie de jeu. Si la connexion du client est acceptée, le serveur lui envoi alors le mot à découvrir. Le mot envoyé par le serveur est incomplet et le client devra deviner les lettres qui le compose (les lettres manquantes). Le client va donc proposer au serveur à chaque tour de jeu une lettre jusqu'à ce que le mot soit découvert. Le client a un nombre limité de tentatives pour gagner la partie.

Illustration

On prends l'exemple de deux joueurs qu'on va nommer joueur 1 et joueur 2 :

  • Le joueur 1 souhaite jouer une nouvelle partie avec le joueur 2.
  • Le joueur 1 fait alors une demande de connexion et une demande pour jouer une partie.
  • Si la demande est acceptée, le joueur 2 fabrique le mot à découvrir. Les lettres composant le mot sont remplacées par des tirets sauf pour la première et la dernière lettre et ce mot est envoyé au joueur 1 qui doit deviner les lettres manquantes.
  • Le joueur 1 propose une lettre. Si la lettre proposée fait partie du mot, le joueur 2 l'inscrit à sa place autant de fois qu'elle se trouve dans le mot. Sinon, le joueur 2 dessine le premier trait du pendu et cela constitue un coup joué et perdu.
  • Le jeu se poursuit jusqu'à ce que :
    • Le joueur 1 gagne la partie en trouvant toutes les lettres dumot en les devinant correctement. Le joueur 2 demande alors au joueur 1 s'il souhaite jouer une nouvelle partie. Si oui, le jeu reprends avec un nouveau mot, sinon le joueur 1 est déconnecté.
    • Le joueur 1 perd la partie parce que le nombre de coups joués et perdu est égal au nombre de coups maximum pour découvrir le mot.
    • Le joueur 1 abandonne la partie en envoyant un mot clé exemple « ABANDON » au joueur 2 et la partie est arrêtée (Le joueur 1 est déconnecté).
Réalisation

Le projet sera codé en C++. Afin de vous aider, le module socket socket.tgz (étudié lors du TP6) vous est fourni. Il vous permet facilement de créer un serveur ou un client TCP et d'échanger des messages entre ces derniers. Les fichiers server.cpp et client.cpp vous aideront à comprendre le fonctionnement de la classe socket et la manière de l'utiliser. Il n’est nécessaire de modifier que la fonction work() pour le client et le serveur.

Il est également demandé d'écrire un petit rapport de quelques pages détaillant votre travail et comment utiliser votre programme (compilation, exécution d'une démo).

Le rapport et le code source (sous forme d'une archive zip) doit être envoyé par email à douattar@labri.fr avant la date limite, avec accusé de réception en précisant n'oubliant pas d'indiquer les NOMs et PRÉNOMs des membres du groupe.

rx/projet-2014.txt · Last modified: 2024/03/18 15:06 by 127.0.0.1