Algorithme du jeu Marienbad
Bonjour à tous,
je réalise le jeu de Marienbad en langage Turbo Pascal. La plupart de mes procédures sont correctes sauf celle qui joue le mode "difficile". Il s'agit, à partir d'un tableau en données binaires, d'additionner les cases de chaque colonne, colonne par colonne de ce tableau; si l'addition de ces nombres n'est pas un nombre pair pour chaque colonnes alors l'ordinateur retire un certain nombre d'allumettes de manière a ce que lorsque l'on additionne à nouveau ces cases pour chaque colonne, on obtienne un nombre pair. j'ai réalisé cette procédure mais elle ne fonctionne pas.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| procedure ordiexpert(var tab1:tableau1; var tab2:tableau2);
var a,b,c,i,nbretire:integer;
Ttemp:tableau1;
begin
for i:=0 to 3 do
begin
Ttemp[i]:=Tab1[i];
end;
a:=tab2[0][2]+tab2[1][2]+tab2[2][2]+tab2[3][2];
b:=tab2[0][1]+tab2[1][1]+tab2[2][1]+tab2[3][1];
c:=tab2[0][0]+tab2[1][0]+tab2[2][0]+tab2[3][0];
while((a=1) or (a=3) or (b=1) or (b=3) or (c=1) or (c=3)) do
begin
i:=random(4);
nbretire:=random(Ttemp[i]+1);
Ttemp[i]:=Ttemp[i]-nbretire;
Bin(Ttemp,tab2);//cet procedure est la procedure passant du tableau des formes decimal(situé dans tab1) aux donnés binaire(situé dans tab2)
a:=tab2[0][2]+tab2[1][2]+tab2[2][2]+tab2[3][2];
b:=tab2[0][1]+tab2[1][1]+tab2[2][1]+tab2[3][1];
c:=tab2[0][0]+tab2[1][0]+tab2[2][0]+tab2[3][0];
end;
end; |
Quand j'applique cette procédure à mon programme, l'ordinateur ne fait pas en sorte que l'utilisateur se retrouve avec a, b, et c qui soient des nombres pairs.
Merci de bien vouloir m'aider, je suis un peu perdu.