site de Fabien Torre, université de Lille


Sujet du projet Delphi : Le Pendu (année 2003-2004)

Sujet du projet à réaliser en Delphi (Deug MISASHS, deuxième année, premier semestre), proposé par Daniela Dudau-Sofronie pour l'année 2003-2004.

Description générale

Le pendu est un jeu assez simple dans lequel un joueur $A$ choisit un mot et un autre joueur $B$ doit le deviner en un nombre de propositions limité. $A$ donne au départ le nombre de lettres du mot. Ensuite, $B$ propose des lettres. Si la lettre proposée appartient au mot à deviner, $A$ donne le(s) endroit(s) où elle apparaît dans le mot. Par contre, si la lettre n'appartient pas au mot, on incrémente le nombre d'erreurs. Au bout d'un certain nombre d'erreurs (convenu au départ et en général 10), $B$ a perdu.

Exemple :
Le mot à deviner est escalope.
$A$ donne donc : - - - - - - - -.
$B$ propose e, $A$ répond : e - - - - - - e.
$B$ propose r, il a fait 1 erreur.
$B$ propose s, $A$ répond : e s - - - - - e.
$B$ propose z, il a fait 2 erreurs.
et ainsi de suite...

Le projet que vous devez réaliser consiste à programmer ce jeu en Delphi qui doit avoir au minimum, les deux fonctionnalités suivantes:

  • partie humain vs humain ;
  • partie humain vs ordinateur.

Humain vs humain

Dans cette partie vous devez construire l'interface graphique qui permettra le déroulement du jeu. Il faut prévoir la possibilité du premier joueur humain d'introduire le mot secret (utiliser un caractère mot de passe, par exemple) que le deuxième doit deviner et de donner un nombre d'essais. A chaque erreur, c'est-à-dire à chaque lettre proposée qui n'est pas dans le mot secret , on ajoute des nouvelles parties à un dessin qui représente le pendu. Quand toutes les lettres du mot secret  ont été devinées, le deuxième joueur gagne la partie et un message de félicitation apparaît. Si le nombre d'essais est dépassé sans que le mot ne soit deviné, le deuxième joueur a perdu et un autre message s'affiche pour annoncer la fin de la partie. La stratégie de dessin est à votre choix: vous pouvez utiliser des images différentes composant l'image finale, ou de rendre visibles, au fur à mesure du déroulement du jeu, des portions d'un dessin complet.

Pour un exemple, voir l'exécutable qui est à votre disposition.

Humain vs ordinateur

Dans cette version nous ajoutons l'ordinateur qui joue contre un humain. L'ordinateur peut être à la fois celui qui propose le mot secret ou celui qui doit le deviner.

Dans le premier cas, quand l'ordinateur propose un mot, il doit disposer d'un dictionnaire contenant des mots (de préférence ordonnés par ordre alphabétique) d'où il va tirer au sort un certain mot. Le dictionnaire doit être stocké dans un fichier Dictionnaire.txt qui peut être édité pour ajouter ou supprimer des mots. Le déroulement du jeu est ensuite classique pour le joueur humain, comme il a été décrit dans la première partie.

Dans le deuxième cas, quand l'humain propose un mot, l'ordinateur doit le deviner. Pour ceci, l'ordinateur va proposer des lettres différentes : tirées aléatoirement, en ordre alphabétique ou dans un ordre basé sur une table de fréquence des lettres en français. Essayez toutes ces approches pour constater la différence et voir dans quelle mesure elles influencent les chances de gagner. Si le mot initialement proposé par l'humain n'est pas dans le dictionnaire de l'ordinateur, alors ce dernier ne va jamais le deviner. Ceci est une stratégie gagnante pour l'humain.

Essayez de trouver aussi une stratégie qui est toujours gagnante pour l'ordinateur lorsqu'il propose le mot secret.

Extensions possibles

Les simulations précédentes peuvent être améliorées. Voici quelques suggestions :

  • mettre un composant Trackbar pour permettre le changement du niveau de difficulté qui affecte essentiellement la taille maximale du mot secret et le nombre d'essais autorisé ;
  • L'ordinateur qui doit deviner peut également employer le dictionnaire pour filtrer des mots secrets potentiels et ceci en se basant sur des fréquences de lettres déjà devinées.

La réalisation de ces options seront prises en compte dans la note finale.

Évaluation

Le projet est à réaliser par binôme, aucun groupe de trois étudiants ou plus ne sera accepté. Réaliser seul le projet est également fortement déconseillé.

Travail à rendre

Vous avez deux éléments à fournir :

  • d'une part, une disquette contenant l'ensemble des fichiers constituant le projet, en particulier une version exécutable du programme ; de plus, le code Pascal lui-même devra être bien structuré et commenté ;
  • d'autre part, un dossier écrit expliquant les structures de données utilisées et les principaux algorithmes employés; la structure globale du programme sera décrite et justifiée.

Rapport et disquette sont à rendre au secrétariat de l'U.F.R. IDIST au plus tard le mercredi 14 janvier 2004.

Présentation orale

Cette soutenance devra être effectuée par les deux membres du binôme et aura lieu la semaine du 19 janvier 2004.

Vous aurez environ 10 minutes pour :

  • convaincre que le programme fonctionne ;
  • exhiber l'ensemble des fonctionnalités programmées ;
  • présenter et justifier les principaux choix effectués en matière de structures de données et algorithmique ;
  • enfin, répondre aux questions du jury.
Fabien Torre Valid HTML5! Valid CSS!
Accueil > Enseignement > Formations > Anciennes formations > Deug MISASHS > Sujets Delphi > Le Pendu
(contenu mis à jour )
site de Fabien Torre, université de Lille

Description

Survoler un lien de navigation pour lire sa description ici...