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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.