Both sides previous revisionPrevious revisionNext revision | Previous revision |
rx:projet-2014 [2014/04/01 14:37] – orel | rx:projet-2014 [2024/03/18 15:06] (current) – external edit 127.0.0.1 |
---|
| |
__Encadrant__ : Ouattara Dramane | __Encadrant__ : Ouattara Dramane |
| |
| __Date limite__ : dimanche 4 mai 2014 |
| |
| |
==Présentation== | ==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. | 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== | ==Principe du jeu== |
==Illustration== | ==Illustration== |
| |
On prends l'exemple de deux joueurs qu'on va nommer joueur 1 et joueur 2. | 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 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. |
– 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. |
– 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 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 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 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 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é). | * 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 {{:rx: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. |