Einzelnen Beitrag anzeigen

nairolf92

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

Re: Programmierung Türme von Hanoi

  Alt 15. Feb 2010, 16:22
So, hab nun erneut ein Problem bei dem ich eure Hilfe benötige.
Ich soll eine Prozedur erstellen, in der ich nur den Anfangs und Endpunkt angeben soll und dann die Scheiben automatisch dahin bewegt werden. Hab schonmal ein Lösungsansatz:
Delphi-Quellcode:
procedure bewegen(start,ziel:integer) ;
var safe,Auswahl1,Auswahl2,Auswahl3,a,s1a,s2a,s3a:integer;
begin
s1a := strtoint(edit5.text);
s2a := 0;
s3a := 0;
Auswahl1 :=s1a;
Auswahl2 :=s2a;
Auswahl3 :=s3a;


if (start = 1) and (ziel = 2) then
  safe:=12;
 if safe=12 then
 begin image(Auswahl1).top := (408-32*s2a);
       image(Auswahl1).left := image(Auswahl1).left+184;
       s1a:=s1a-1;
       s2a:=s2a+1;


       end;
 if (start=1) and (ziel=3) then
 safe:=13;
 if safe=13 then
 begin
 image(Auswahl1).top := (408-32*s3a);
 image(Auswahl1).left := image(Auswahl1).left+368;
 s1a:=s1a-1;
       s3a:=s3a+1;

  if (start=2) and (ziel=3) then
 safe:=23;
 if safe=23 then
 begin
 image(Auswahl2).top := (408-32*s3a);
 image(Auswahl2).left := image(Auswahl2).left+184;
 s2a:=s2a-1;
       s3a:=s3a+1;

  if (start=2) and (ziel=1) then
 safe:=21;
 if safe=21 then
 begin
 image(Auswahl2).top := (408-32*s1a);
 image(Auswahl2).left := image(Auswahl2).left-184;
 s2a:=s1a-1;
       s1a:=s1a+1;

  if (start=3) and (ziel=1) then
 safe:=31;
 if safe=31 then
 begin
 image(Auswahl).top := (408-32*s1a);
 image(Auswahl).left := image(Auswahl).left-368;
 s3a:=s3a-1;
       s1a:=s1a+1;

  if (start=3) and (ziel=2) then
 safe:=32;
 if safe=32 then
 begin
 image(Auswah)l.top := (408-32*s1a);
 image(Auswahl).left := image(Auswahl).left-184;
 s3a:=s3a-1;
       s2a:=s2a+1;
       end;
die zahlen (bei start und ziel stehen für die türme, s1a soll Stapel1Anzahl heißen, also die Anzahl der Scheiben die auf Stapel 1 liegen und edit5 ist das feld in den man diese Anzahl von 1-8 festlegen kann). Ich merke grad, dass die variable safe unnütz ist, aber abgesehen davon zeigt er noch ziemlich viele fehlermeldungen an.
darf man bei einer prozedur nicht auf die edit- und image felder zurückgreifen? wenn ja wie könnte ich es anders schreiben?
  Mit Zitat antworten Zitat