Einzelnen Beitrag anzeigen

condor

Registriert seit: 24. Okt 2006
27 Beiträge
 
#1

Türme von Hanoi, richtiger Algorythmus?

  Alt 18. Dez 2006, 20:22
Hi, ich habe die Türme von Hanoi schon fast fertig. Die Bewegung an sich dürfte auch nicht schwer fallen, aber ich hätte da eine Frahe zum Algorythmus:
Was ist an dem falsch? Wenn ich ihn ausführe, dann wird jedes Mal die oberste Scheibe bewegt und mehr nicht.

Delphi-Quellcode:
procedure TForm1.umsetzen(anzahl, von, nach, hilf : integer);
   var lauf: integer;
       s: string;
   begin
   Application.ProcessMessages;
   if aborted=1 then exit;
   s:='';
   for lauf:=0 to 0+anzahl do s:=s+' ';
   memo1.Lines.add(s+'umsetzen('+inttostr(anzahl)+','+
                   inttostr(von)+','+inttostr(nach)+','+
                   inttostr(hilf)+')');
   if anzahl=1 then setze_eine(von,nach)
   else begin
       umsetzen(anzahl-1,von,hilf,nach);
       umsetzen(1,von,nach,hilf);
       umsetzen(anzahl-1,hilf,nach,von);
       end;
   end;

procedure TForm1.setze_eine(von,nach : integer);
  var jetzt:integer;
   begin
   inc(versuch);
   progressbar1.position:=versuch+1;
   tturmx[nach].steine[spinedit1.Value-1]:=tturmx[von].steine[spinedit1.Value-1];
   tturmx[nach].steine[spinedit1.Value-1].Parent:=tturmx[nach];
   memo2.Lines.add(inttostr(versuch)+ ': '+inttostr(von)+' -> '+inttostr(nach));
        Jetzt := GetTickCount + SpinEdit2.value;
        REPEAT
            Application.ProcessMessages;
        UNTIL GetTickCount > Jetzt;
   end;
  Mit Zitat antworten Zitat