MasterMind++


Sommaire :

  1. Introduction
  2. Logiciel et fonctionnalités
  3. Projet et évolutions
  4. Téléchargement

Introduction

Ce projet a été réalisé en duo. Il y avait Guillaume Pascal et moi même. Il a été réalisé dans le cadre du sujet : Faire un jeu simple en réseau, pour la matière Réseau (évidemment :D), en 1ère année de DUT (Mai à Juin 2013).

 

Il a été réalisé sous Qt 4.8.4, qui est un framework C++ très performant et multiplateforme. C’est à dire une suite de logiciels comprenant Qt Creator (IDE), Qt Designer (Mise en forme de fenêtres graphiques), Qt Linguist (aide aux traductions), etc…

Plus de détails sur le site de Qt.

 

Pour structurer et faciliter notre travail au cours du projet, nous avons utilisé le gestionnaire de version Git, notre dépôt étant hébergé sur Bitbucket. Tout ceci permettant d’avoir un contrôle des sources, et une meilleure organisation pour le projet. Ainsi que Visual Studio 2010 pour l’IDE.

 

Nous avions moins d’un mois pour proposer un jeu en réseau.

 

Je vous présente donc le projet MasterMind++ !

logo du jeu MasterMind++Logo de MasterMind++

flèche haut

Le logiciel et ses fonctionnalités

MasterMind++ est un jeu en réseau, comme son nom l’indique c’est un MasterMind ! 😮 En réalité, le logiciel se décompose en 2 parties. Un programme serveur, et un programme client.

 

Application serveur de MasterMind++

Le programme serveur une fois lancé est conçu pour accueillir autant de joueurs que possible. Ceci étant limité par les performances de la machine sur laquelle il est exécuté. Il est à noter qu’il n’est pas nécessaire de posséder un serveur dédié pour y jouer ! Un simple PC suffit à exécuter le programme. 😉

 

Application client de MasterMind++

Le programme client permet de se connecter à un serveur qui aurait été lancé auparavant.

Celui-ci grâce à un pseudo ainsi que le renseignement de l’adresse IP du serveur, ainsi que le port utilisé par celui-ci permet au joueur d’accéder au Lobby. Le Lobby est l’interface qui affiche les joueurs connectés au serveur en les divisant en 2 groupes. Les joueurs disponibles pour une partie, et les joueurs déjà en cours de jeu.

Ainsi il est possible de lancer un défi à un joueur disponible.

Lobby de l'application MatserMind++

 

Le serveur gère les connexions et déconnexions, ceci permet donc de gérer les utilisateurs, par exemple : en cas de déconnexion inopinée d’un joueur en pleine partie le serveur se charge de mettre fin à la session de jeu en cours et de mettre à jour la disponibilité du second joueur.

flèche haut

Le projet en bref et évolutions

Le projet ne comporte pas toutes les fonctionnalités que nous aurions voulu qu’il possède, en effet nous avions un court délai pour le réaliser, de plus la période durant laquelle nous devions le mener à bien était chargée par d’autres projets tout aussi importants.

 

Toutes les fonctionnalités que je vais citer ont été supprimées par manque de temps, contre notre volonté. :( Parmi celles-ci, il y a notamment la possibilité pour le client de choisir le nombre de propositions maximales. Ainsi le serveur proposerait seulement la liste des clients disponibles avec les mêmes réglages.

Mais aussi le nombre de « trou » ou plutôt la taille d’une combinaison.

L’application ne supporte pas l’internationalisation, bien que cette option serait plus rapidement réglable contrairement au deux précédentes.

 

Toutefois, nous nous sommes concentrés sur la partie réseau du projet pour ainsi proposer un jeu à serveur unique pouvant accueillir beaucoup de clients.

 

Ce projet a été intéressant à réaliser, en effet, c’était la première fois que nous devions traiter un problème nécessitant une partie réseau. Par conséquent, c’était une problématique nouvelle. Pour parvenir à achever le projet nous avons mis en place notre application pour qu’elle utilise le protocole TCP/IP via les classes Qt. Toutefois la tâche n’en a pas été très aisée malgré ce support qui nous a servi de base. Nous avons pu constater que les tests à réaliser sur une application réseau sont plus long, et souvent plus difficiles.

 

Si vous souhaitez plus de détails, faites m’en part.

 

Vous pouvez aussi consulter un autre article sur MasterMind++, écrit par Guillaume Pascal.
flèche haut

Téléchargement

Si cela vous intéresse, vous pouvez donc dès à présent télécharger les 2 programmes GRATUITEMENT ! Grâce à ce lien pour le client, et celui-ci pour le serveur. 😉

 

Notes : Au cours de vos tests si vous rencontrer un problème, plantage, etc.. Veuillez le signalez dans les commentaires, ou me contacter directement sur mon mail.
Contactez moi

 

Vous souhaitez plus de détails à propos de MasterMind++ serveur ou client, demandez moi, je vous répondrais le plus précisément possible, et je rajouterai les remarques pertinentes sur cet article.

 

Vous désirez un article sur Qt, faites moi le savoir par les commentaires, et précisez aussi ce qui vous intéresserait de savoir sur Qt.
flèche haut

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *


Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>