Ich habe eine etwas andere Variante gefunden:
Code:
procedure Hanoi(n,nr:integer; von,nach,uber:char; ausgabe:string);
begin
nr:=n;
if n>0 then
begin
Hanoi(n-1,nr,von,uber,nach,ausgabe);
ausgabe:='Verschiebe Scheibe '+inttostr(nr)+' von '+von+' nach '+nach;
form1.listbox1.Items.add(ausgabe);
Hanoi(n-1,nr,uber,nach,von,ausgabe);
nr:=nr-1;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var anz,num:integer;ausg:string;
begin
anz:=strtoint(form1.Edit1.Text);
Hanoi(anz,num,'A','C','B',ausg);
form1.Label4.Caption:=inttostr(form1.ListBox1.Count);
end;
end.
Ich sitze jetzt schon andert halb Stunden hier und versuche nachzuvollziehen, wie das Programm diese Procedur abarbeitet und wie sich die Variablen bei jedem Durchlauf ändern, aber ich bekomme es nicht raus.
Erklärt sich vielleicht jemand bereit hier mit diesem Code einen kleinen Durchlauf mit mir zu machen? Das Programm funktioniert aber ich kann nicht nachvollziehen wie?