Registriert seit: 9. Feb 2010
5 Beiträge
|
Re: Programmierung Türme von Hanoi
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?
|
|
Zitat
|