Projet mastermind

Fermé
johnstrompson Messages postés 1 Date d'inscription lundi 10 décembre 2012 Statut Membre Dernière intervention 10 décembre 2012 - 10 déc. 2012 à 11:12
Bonjour,
Je suis étudiant en ecole d'ingénieur et c'est ma première année, j'ai jamais fait d'algorithme et de c++ et malgrè tout les documents sur le c++ que j'ai consulté , j'ai encore du mal . Je dois réaliser le jeu mastermind décrit en dessous en c++ , avec devC++ et dans une très courte période. Je demande votre soutien et un peu de guide pour débuter: merci

Le nombre de pions de couleurs di erentes est de 8 et les huit couleurs sont generalement :
rouge ; jaune ; vert ; bleu ; orange ; blanc ; violet ; fuchsia.
Il y a egalement des pions blancs et rouges (ou noirs) utilises pour donner des indications
a chaque etape du jeu.
Il existe de nombreuses variantes suivant le nombre de couleurs, de rangees ou de trous.
1.1 Principe
Les deux joueurs se mettent d'accord sur un nombre, necessairement pair, de manches a
jouer.
Un joueur commence par placer son choix de pions sans qu'ils soient vus de l'autre joueur
a l'arriere d'un cache qui les masquera a la vue de celui-ci jusqu'a la n de la manche.
1
Le joueur (designe sous le terme de \joueur actif" dans la suite) qui n'a pas selectionne
les pions doit trouver quels sont les quatre pions, c'est-a-dire leurs couleurs et positions.
Pour cela, a chaque tour, le joueur actif doit se servir de pions pour remplir une rangee
selon l'idee qu'il se fait des pions dissimules.
Une fois les pions places, l'autre joueur (le \joueur passif") indique :
{ le nombre de pions de la bonne couleur bien places en utilisant le m^eme nombre de
petits pions rouges ;
{ le nombre de pions de la bonne couleur, mais mal places, avec les petits pions blancs.
Il se peut qu'aucun pion ne corresponde, en couleur ou en couleur et position, auquel cas le
joueur passif se contente de le signaler au joueur actif.
La tactique du joueur actif consiste a selectionner en fonction des coups precedents,
couleurs et positions, de maniere a obtenir le maximum d'informations de la reponse du
partenaire puisque le nombre de propositions est limite par le nombre de rangees de trous
du jeu. Dans la plupart des cas, il s'e orce de se rapprocher le plus possible de la solution,
compte-tenu des reponses precedentes, mais il peut aussi former une combinaison dans le seul
but de veri er une partie des conclusions des coups precedents et de faire en consequence la
proposition la plus propice a la deduction d'une nouvelle information.
Le joueur gagne cette manche s'il donne la bonne combinaison de pions sur la derniere
rangee ou avant, auquel cas il ajoute ce nombre de rangees au score total de son adversaire.
S'il ne trouve pas la bonne combinaison sur la derniere ligne, l'adversaire rajoute un point
supplementaire a son score total. Ensuite, il devient le joueur passif et c'est a son tour de
choisir les pions a decouvrir.
Lorsque le nombre de manches speci e en debut de partie est joue, le joueur qui a le score
le plus eleve a gagne.
1.2 Variantes
Selon le niveau des joueurs, un m^eme jeu peut ^etre rendu plus dicile en autorisant
plusieurs pions de la m^eme couleur, voire en autorisant l'absence d'un pion ou de plusieurs.
2 Travail demande
2.1 Premiere partie
Dans cette partie, le programme doit permettre de modeliser le plateau de jeu et l'ordi-
nateur jouer le r^ole de joueur passif.
Dans un premier temps, vous devez donc choisir comment modeliser le plateau, de facon
a representer les choix du joueur actif et les reponses du joueur passif. Le C++ n'est pas un
langage particulierement concu pour de belles applications graphiques ; l'essentiel est donc
d'obtenir un achage aisement lisible.
Ensuite, l'ordinateur doit faire un choix (aleatoire) des quatre pions a deviner et son uti-
lisateur doit pouvoir prendre le r^ole de joueur actif, entrer des propositions et voir appara^tre
les reponses correspondantes. Bien s^ur, l'ordinateur doit pouvoir indiquer la n de la manche,
et le nombre de points obtenus par le joueur (passif : c'est lui qui encaisse les points).