Einzelnen Beitrag anzeigen

nairolf92

Registriert seit: 9. Feb 2010
5 Beiträge
 
#10

Re: Programmierung Türme von Hanoi

  Alt 17. Feb 2010, 18:18
so hab die prozedur jetz ein bisschen verändert:
Delphi-Quellcode:
var
    Scheibenbild: Array [1..8,1..3] of timage;
    sa: Array[1..3] of integer;



procedure TForm1.FormCreate(Sender: TObject);
var n : integer;
begin

  For n := 1 to 8 do
  Begin
   sa[1] := n;
   sa[2] := 0;
   sa[3] := 0;
  end;

Scheibenbild[1,1] := Scheibe4;
Scheibenbild[2,1] := Scheibe5;
Scheibenbild[3,1] := Scheibe6;
Scheibenbild[4,1] := Scheibe7;
Scheibenbild[5,1] := Scheibe8;
Scheibenbild[6,1] := Scheibe9;
Scheibenbild[7,1] := Scheibe10;
Scheibenbild[8,1] := Scheibe11;


end;
procedure bewegen(start,ziel:boolean);
var a,q,s:boolean;
begin

if ((start=q) and (ziel=a)) then
       begin Scheibenbild[sa[1],1].top := (408-32*sa[2]);
       Scheibenbild[sa[1],1].left := Scheibenbild[sa[1],1].left+184;
       sa[1]:=sa[1]-1;
       sa[2]:=sa[2]+1;
       end;

if (start=q) and (ziel=s) then
       begin Scheibenbild[sa[1],1].top := (408-32*sa[3]);
       Scheibenbild[sa[1],1].left := Scheibenbild[sa[1],1].left+184;
       sa[1]:=sa[1]-1;
       sa[3]:=sa[3]+1;
       end;

if (start=a) and (ziel=s) then
       begin Scheibenbild[sa[2],1].top := (408-32*sa[3]);
       Scheibenbild[sa[2],1].left := Scheibenbild[sa[2],1].left+184;
       sa[2]:=sa[2]-1;
       sa[3]:=sa[3]+1;
       end;

if (start=a) and (ziel=q) then
       begin Scheibenbild[sa[2],1].top := (408-32*sa[1]);
       Scheibenbild[sa[2],1].left := Scheibenbild[sa[2],1].left+184;
       sa[2]:=sa[2]-1;
       sa[1]:=sa[1]+1;
       end;

if (start=s) and (ziel=q) then
       begin Scheibenbild[sa[3],1].top := (408-32*sa[1]);
       Scheibenbild[sa[3],1].left := Scheibenbild[sa[3],1].left+184;
       sa[3]:=sa[3]-1;
       sa[1]:=sa[1]+1;
       end;

if (start=s) and (ziel=a) then
       begin Scheibenbild[sa[3],1].top := (408-32*sa[2]);
       Scheibenbild[sa[3],1].left := Scheibenbild[sa[3],1].left+184;
       sa[3]:=sa[3]-1;
       sa[2]:=sa[2]+1;
       end;

end;
tatsächlich zeigt er bei der prozedur keinen fehler mehr an, jedoch wenn ich diese mit "bewegen(q,a)" auf einem button abrufen will. Die Fehlermeldung sagt: Operator oder Simikolon fehlt.
was könnte der fehler sein? ist es falsch mit z.b. if (start=s) and (ziel=a) then anzufangen?
  Mit Zitat antworten Zitat