Algorithme MasterMind Type Tab4 = Tableau (1..4) de chaînes
Transcription
Algorithme MasterMind Type Tab4 = Tableau (1..4) de chaînes
Algorithme MasterMind Type Tab4 = Tableau (1..4) de chaînes ; Var TabSuite, TabTestSuite : Tab4; i, nbEssais : entier; Fonction couleur (n : entier) : chaîne; Début Si n = 1 alors couleur : = "bleu"; Fin si Si n = 2 alors couleur : = "rouge"; Fin si Si n = 3 alors couleur : = "jaune"; Fin si Si n = 4 alors couleur : = "vert"; Fin si Fin Fonction Place (couleur : chaîne; place : entier) : chaîne; Var i: entier; Début Place="?"; si couleur = TabSuite(place) alors Place : = "B" ' B pour bien placé sinon pour i = 1 à 4 faire si i < > place alors si couleur = TabSuite(i) alors Place : = "M" ' M pour mal placé fin si fin si fin pour fin si Fin Fonction test_suite ( T : Tab4): booléen; Var i, ctB, ctM : entier; reponse : chaîne; Début ctB : = 0; ' compteur pour les pions de couleur bien placés ctM : = 0; ' compteur pour les pions de couleur mal placés Pour i : = 1 à 4 faire reponse: = Place (T, i); si (reponse = "B") alors ctB : = ctB + 1; fin si si (reponse = "M") alors ctM : = ctM + 1; fin si Fin pour Afficher ("Couleurs bien placées : ",ctB); Afficher ("Couleurs mal placées : ",ctM); Si (ctB = 4) alors ' si le joueur a bien placé les 4 pions de couleurs test_suite : = TRUE; Sinon test_suite : = FALSE; Fin si Fin Début ' générer la suite de pions de couleur à deviner Pour i : = 1 à 4 faire TabSuite(i) : = couleur (Random (4)); ' fonction Random supposée connue Fin pour nbEssais : = 1; Répeter Pour i : = 1 à 4 faire Lire (TabTestSuite (i) ); ' Saisie de la suite à tester Fin pour nbEssais : = nbEssais + 1; Tant que ( test_suite (TabTestSuite) = FALSE) and (nbEssais < 9) ' autres affichages Si (nbEssais < 9) alors Afficher ("Vous avez deviné la suite correcte!"); Sinon Afficher ("Vous n'avez deviné la suite correcte. Celle-ci était "); pour i = 1 à 4 faire Afficher (TabSuite(i)); Fin pour Fin si Fin