____________________________________ L1 -- IIG -- GTK : TP 'Mastermind' Premiere partie : modele ____________________________________ ____ Objectif du TP ____ Le but est de modeliser un jeu de mastermind. ____ Presentation du contexte ____ Un plateau de mastermind contient 10 rangees, chacune de taille 4. On dispose de 8 couleurs C1,...,C8. Ce jeu se joue a deux joueurs : - l'un choisit une combinaison (secrete) de 4 couleurs ordonnees (par exemple : C7 C2 C2 C5) ; - l'autre doit deviner cette combinaison secrete. Pour ce faire, le joueur qui devine peut proposer jusqu'a 10 combinaisons de couleurs. A chaque fois qu'il propose une combinaison, le joueur qui a choisit la combinaison lui indique : - le nombre de couleurs de la combinaison proposee qui appartiennent a sa combinaison secrete ; - le nombre de couleurs de la combinaison proposee qui appartiennent a sa combinaison secrete, et sont bien placees. Par exemple, si le joueur qui devine propose C5 C3 C2 C1, alors le joueur qui detient la combinaison secrete doit lui indiquer que : - 2 couleurs sont correctes (mais pas necessairement bien placees : il s'agit des couleurs C5 et C2) ; - 1 couleur est correcte et correctement placee (il s'agit de la couleur C2). Si au dixieme essai le joueur qui devine n'a toujours pas la bonne combinaison : il a perdu. Autrement : il a gagne. ____ Travail demande ____ 1) Definir une structure de donnee permettant de representer le mastermind. Questions a se poser : - Quelles sont les donnees statiques (sens et type) du concept a modeliser ? - Quelles sont les donnees dynamiques (sens et type) du concept a modeliser ? - Comment representer l'ensemble de ces donnees ? - Quelles sont les regles de coherence que ces donnees doivent verifier ? 2) Lister les fonctions de manipulation de cette structure dont il faudrait disposer. Declarer ces fonctions. Questions a se poser : - Quelles sont les donnees que l'on doit pouvoir lire ? - Quelles sont les donnees que l'on doit pouvoir modifier ? - Dans un contexte de jeu, quelles seraient les fonctionnalites attendues ? 3) Ecrire les fonctions de manipulation de cette structure. 4) Ecrire un programme de test de vos fonctions. 5) Ecrire un programme permettant a deux joueurs de jouer au mastermind.