Exercice 30 Déroulement du jeu Exercice 30 a - BFH
Transcription
Exercice 30 Déroulement du jeu Exercice 30 a - BFH
Université de Neuchâtel Faculté des sciences Informatique technique Exercice 30 Définissez la version simplifiée du jeu Mastermind, en suivant systématiquement les étapes décrites dans cet exercice. Le but du Mastermind est la recherche d’une combinaison secrète formée de 4 jetons, choisis parmi 4 couleurs différentes (rouge, jaune, vert et bleu). Déroulement du jeu Au départ l’ordinateur doit déterminer la combinaison secrète. Ensuite, le joueur doit essayer de retrouver cette combinaison en proposant successivement ses propres combinaisons. Pour cela il doit introduire les abréviations des couleurs des jetons à l’aide du clavier (r pour le rouge, j pour le jaune, v pour le vert et b pour le bleu). L’ordinateur doit systématiquement évaluer les propositions du joueur afin d’afficher le nombre de jetons, qui sont soit à la bonne place ou qui apparaissent à une autre place. Le jeu doit se terminer lorsque la combinaison secrète a été retrouvée. Exercice 30 a Définissez la fonction DefineCombination, qui détermine la combinaison secrète à l’aide de la fonction « int rand (void) » de la bibliothèque standard « sdtlib.h.». La fonction rand retourne une valeur entière aléatoire, qui se situe entre 0 et RANDMAX. La liste des paramètres de la fonction DefineCombination doit contenir un pointeur sur char, afin de pouvoir transmettre le tableau SecreteCombination. Ce tableau est composé de 4 éléments char afin de pouvoir stocker les abréviations des couleurs des jetons, qui composent la combinaison secrète (r pour le rouge, j pour le jaune, v pour le vert et b pour le bleu). Le prototype de la fonction est le suivant : void DefineCombination (char SecreteCombination[]); Exercice 30 b Définissez la fonction AnalyzePosition, qui évalue le nombre de jetons qui ont à la fois la bonne couleur et la bonne place. Le résultat doit être retourné à l’aide d’une valeur entière. La liste des paramètres de la fonction contient deux pointeurs sur char, afin de pouvoir transmettre les tableaux SecreteCombination et TriedCombination. Ces tableaux sont composés de 4 éléments char afin de pouvoir stocker les abréviations des couleurs des jetons, qui composent respectivement la combinaison secrète et la proposition du joueur (r pour le rouge, j pour le jaune, v pour le vert et b pour le bleu). Le prototype de la fonction est le suivant : int AnalyzePosition (char SecreteCombination[], char TriedCombination[]); Exercice 30 c Définissez la fonction AnalyzeColor, qui analyse la couleur des jetons de la combinaison proposée par le joueur. Ici le résultat doit être également retourné à l’aide des valeurs entières. La liste des paramètre est identique à celle de la fonction AnalyzePosition. Prototype de la fonction : Imprimé le 23.11.2010 E. Firouzi Page 1 Université de Neuchâtel Faculté des sciences Informatique technique int AnalyzeColor (char SecreteCombination[], char TriedCombination[]); Exercice 30 d Définissez la fonction main, qui contrôle le déroulement du jeu à l’aide des fonctions DefineCombination, AnalyzePosition et AnalyzeColor. La fonction DefineCombination doit définir au début du jeu la solution secrète. L’ordinateur doit ensuite attendre jusqu’à ce que le joueur ait introduit sa combinaison à l’aide du clavier. Ces combinaisons doivent être analysées à l’aide des fonctions AnalyzePosition et AnalyzeColor, et le résultat de cette analyse doit être affiché sur l’écran. Le jeu doit se terminer soit avec la bonne combinaison ou après 8 essais. Imprimé le 23.11.2010 E. Firouzi Page 2