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

Documents pareils