Home

énoncé - Imagine

image

Contents

1. 1 m me si la fonction de traitement d une combinaison est pour l instant incompl te Er 7 Master Mind w LA i GAGNE RYBJ MC FIGURE 2 Master mind graphique La premi re prend d j en compte la touche Retour arri re mais pas la seconde qui la consid re comme une erreur de frappe Modifier cette derni re en cons quence
2. 2 0 Essai 3 22222 22222 2 0 Essai 4 11223 11223 3 2 Essai 5 11232 11232 2 3 Essai 6 13221 13221 3 2 Essai 7 31221 31221 5 0 VOUS AVEZ GAGNE lt gt eJm Tp3_Final b bash x FIGURE 1 Master mind la console srand unsigned int time 0 initialisation genereCombinaison combin 5 Changer la complexit du jeu Rapidement vous allez devenir des experts en Mastermind Vous allez alors vouloir augmenter la difficult Il suffira alors d allonger la longueur de la combinaison ou d augmenter le nombre de couleurs possibles Cela vous est d ores et d j tr s facile si vous avez pens d finir une constante globale pour chacune de ces deux grandeurs Si ce n est pas le cas il est grand temps de le faire D finissez par exemple const int nbcases 5 longueur de la combinaison const int nbcoul 4 nombre de couleurs diff rentes Reprenez le code que vous avez d j crit en utilisant ces constantes Il est tr s important de stocker les param tres constants dans des variables cela fait gagner beaucoup de temps lorsque lon veut les modifier 6 Saisie d une combinaison au clavier La fonction suivante que nous vous demanderons d admettre saisit une cha ne de caract res string au clavier et remplit le tableau combi avec les chiffres que les nbcases premiers caract res de la cha ne repr sentent void getCombinaison int comb
3. Algorithmique et Programmation G1 monasse at imagine enpc fr G2 facciolg at imagine enpc fr G3 alexandre boulch at onera fr G4 theophile dalens at inria fr G5 bourkia at imagine enpc fr G6 fernandl at imagine enpc fr 10 1 Tableaux Dans ce TP nous allons programmer un jeu de Mastermind o l utilisateur doit deviner une combinai son g n r e al atoirement par l ordinateur Le joueur dispose d un nombre d termin d essais chaque essai d une combinaison l ordinateur fournit deux indices le nombre de pions correctement plac s et le nombre de pions de la bonne couleur mais incorrectement positionn s LL 1 Mastermind Texte R cup rer la solution de d part T l charger l archive Tp3_Initial zip sur la page du cours la d compresser dans un r pertoire faisant appara tre les noms des deux l ves et ouvrir la solution MasterMind dans Visual Studio Etudier le projet Mastermind Repr senter une combinaison Nous prendrons ici une combinaison de 5 pions de 4 couleurs diff rentes La couleur d un pion sera repr sent e par un entier compris entre 0 et 3 Pour une combinaison de 5 pions nous allons donc utiliser un tableau de 5 entiers int combin 5 tableau de 5 entiers Afficher une combinaison Programmer une fonction permettant d afficher une combinaison donn e l cran La mani re la plus simple de faire consistera faire afficher les diff rents chif
4. al plac s 1 2 Mastermind Graphique Le jeu de Mastermind que nous venons de r aliser reste malgr tout tr s peu convivial Nous allons y rem dier en y ajoutant une interface graphique 1 Etude du projet de d part Passer dans le projet MastermindGraphique Sous Visual penser le d finir comme projet de d marrage pour que ce soit lui qui se lance l ex cution son nom doit appara tre en gras dans la liste des projets Les fonctions graphiques sont d j d finies Elles fonctionnent selon un principe de division de la fen tre graphique en lignes La fonction void afficheCombinaison int combi nbcases int n permet d afficher la combinaison combi sur la ligne n Au d but du programme on laisse en haut de la fen tre graphique autant de lignes libres que le joueur a d essais pour y afficher le d roulement du jeu On affiche en bas de la fen tre graphique un mini mode d emploi qui r sume les correspondances entre touches et couleurs 2 Mastermind graphique R ins rer dans ce projet les fonctions de g n ration al atoire d une combinaison et de comparaison de deux comparaisons crites pr c demment Puis reprogrammer la boucle principale du jeu en utilisant l affichage graphique 3 Ultime am lioration On souhaite pouvoir effacer une couleur apr s l avoir tap e au cas o l on se serait tromp Etudier les fonctions int Clavier et void getCombinaison int int
5. fres de la combinaison sur une m me ligne les uns la suite des autres G n rer une combinaison al atoirement En d but de partie l ordinateur doit g n rer al atoirement une combinaison faire deviner l utilisateur Nous allons pour cela utiliser les fonctions d clar es dans le fichier cstdlib notamment la fonction rand permettant de g n rer un nombre au hasard entre 0 et RAND MAX Afin d obtenir un nombre entre 0 et n on proc dera de la mani re suivante x rand n Pour que la s quence de nombres g n r e ne soit pas la m me d une fois sur l autre il est n cessaire d initialiser le g n rateur avec une graine variable La mani re la plus simple de proc der consiste utiliser l heure courante La fonction time d clar e dans le fichier ctime permet de l obtenir En fin de compte la fonction suivante nous permet donc de g n rer une combinaison include lt cstdlib gt include lt ctime gt using namespace std void genereCombinaison int combin 5 for int i 0 i lt 5 i combin i rand 4 appels au generateur a Tp3_Anal b bash G La combinaison que vous devez trouver fait 5 chiffres de long Ces chiffres sont compris entre 0 et 3 Vous avez droit a 10 essais Essai 1 0 Combinaison impossible Recommencez Essai 1 123123 Combinaison impossible Recommencez Essai 1 00000 00000 0 0 Essai 2 11111 11111
6. ifnbcases cout lt lt Votre essai _ string sS cin gt gt S for int i 0 i lt nbcases i combi i s i 0 Attention le cin ne fonctionne pas depuis le terminal int gr de QtCreator d ailleurs la fen tre s appelle Application Output ne supporte pas l Input il faut lui dire d utiliser un terminal externe Aller dans l onglet Projects rubrique Run et cliquer le bouton Run in Terminal Dans le cadre de notre Mastermind il s agit de modifier cette fonction pour qu elle contr le que la cha ne rentr e est bien de bonne taille et que les chiffres sont bien entre O et nbcoul 1 L essai devra tre redemand jusqu ce que la combinaison soit valide On utilisera entre autres la fonction s size qui retourne la taille de la cha ne s la syntaxe de cette fonction sera comprise plus tard dans le cours Une petite explication sur s i 0 Les caract res type char sont en fait une valeur num rique le code ASCII 0 donne le code ASCII du caract re z ro On peut le v rifier en faisant par exemple cout lt lt int 0 lt lt endl Il faut convertir en entier sinon on lui demande d afficher un char et donc il affiche le caract re associ au code ASCII 0 Cette valeur est 48 Il se trouve que les chiffres de 0 9 ont des codes ASCII cons cutifs 0 48 1 49 9 57 Le type string de la variable s se compo
7. rte comme un tableau de char Ainsi s i 0 vaut 0 si s i est le caract re 0 1 0 1 si c est le caract re 1 etc 7 Traitement d une combinaison Il faudrait maintenant programmer une fonction comparant une combinaison donn e avec la com binaison trouver Cette fonction devrait renvoyer deux valeurs le nombre de pions de la bonne valeur bien plac s puis dans les pions restant le nombre de pions de la bonne valeur mais mal plac s Par exemple si la combinaison trouver est 02113 00000 1 pion bien plac 0xxxx 0 pion mal plac xxxxx 20000 0 pion bien plac xxxxx 2 pions mal plac s 20xxx 13133 2 pions bien plac s xx1x3 1 pion mal plac 1xxxx 13113 3 pions bien plac s xx113 0 pion mal plac xxxxx 12113 4 pions bien plac s x2113 0 pion mal plac xxxxx Pour commencer et pouvoir tout de suite tester le jeu programmer une fonction renvoyant uni quement le nombre de pions bien plac s 8 Boucle de jeu Nous avons maintenant notre disposition toutes les briques n cessaires il n y a plus qu les assembler pour former un jeu de mastermind Pensez par ailleurs ajouter la d tection de la victoire quand tous les pions sont bien plac s et celle de la d faite quand un nombre limite d essais a t d pass 9 Version compl te Compl ter la fonction de traitement d une combinaison pour qu elle renvoie galement le nombre de pions m

Download Pdf Manuals

image

Related Search

Related Contents

  JUPITER® 200      Manual en PDF - electronicaflamagas.com  Samsung 524 User's Manual  HAARFARBE COLORATION pro-nature - Basler Haar  

Copyright © All rights reserved.
Failed to retrieve file