MasterMind.


Dans ce jeu, chaque joueur choisit une combinaison de NP pions choisis parmi NC couleurs. Une même couleur peut se répéter dans la version la plus difficile. Chaque joueur doit déterminer la combinaison de l'autre joueur en proposant une combinaison à laquelle l'adversaire répond en fournissant le nombre de noirs (pions bien placés: même couleur et même position) et le nombre de blancs (pions de bonne couleur mais mal placées).

Type Tabl = tableaui i=1,..,20 de entier

fonction TirageAvecRepet(NP,NC)
  paramètre: NP, NC: entier
  à valeur Tabl
Tabl: T
entier: i
pour i de 1 à NP faire
  Ti ß 1+RANDOM(NC)
fpour
résultat(T)

fonction TirageSansRepet(NP,NC)
  paramètre: NP, NC: entier
  à valeur Tabl
Tabl: T, Coul
entier: i
pour i de 1 à NC faire
  Couli ß i
fpour
pour i de 1 à NP faire
  c ß 1+RANDOM(NC-i+1)
  Ti ß Coulc
  Coulc ß CoulNC-i+1 
fpour
résultat(T)

fonction Noirs(T,X,NP)
  paramètres: 	T, X: Tabl
              NP: entier
  à valeur: entier
entier: i, N
N ß 0
pour i de 1 à NP faire
  si Ti = Xi alors N ß N+1
  fsi
fpour
résultat(N)

fonction Blancs(T,X,NP,NC)
  paramètres: 	T, X: Tabl
           NP,NC: entier
  à valeur: entier
entier: i, N, c
XTmp, Tmp: Tabl
pour i de 1 à NC faire
  Tmpi ß 0
  XTmpi ß 0
fpour
pour i de 1 à NP faire
  c ß Ti
  Tmpc ß Tmpc+1
fpour
pour i de 1 à NP faire
  c ß Xi
  XTmpc ß XTmpc+1
fpour
N ß 0
pour i de 1 à NC faire
si Tmpi < XTmpi alors N ß N+ Tmpi
    sinon N ß N+ XTmpi
fsi
fpour
N ß N-Noirs(T,X,NP)
résultat(N)

entier: NP, NC, NE
Tabl: X, T
NP ß 6
NC ß 7
X ß TirageAvecRepet(NP,NC)
N ß 0
NE ß 0
tant que NOT ((N=NP) ou (NE=2*NP)) faire
  DemandeCombi(T)
  NE ß NE+1
  N ß Noirs(T,X,NP)
  écrire N," noir(s) et ", Blancs(T,X,NP,NC), "blanc(s)"
ftant
si N=NP alors écrire "Bravo! Vous avez trouvé en", NE, " essai(s)"
sinon écrire "Il fallait trouver:"
      pour i de 1 à NP faire
       écrire Xi
      fpour
fsi
Vous pouvez charger une version Delphi du mastermind en cliquant ici


Page précédente.
Page d'accueil.