![]() |
Re: Aufgabe: Algorithmus eines Zauberwürfels
Zitat:
[OT] Aber zum Thema Backtracking stelle ich jetzt auch mal ein kleines Tutorial in Aussicht mit allgemeiner Klasse, hab alles hier, muss es nur noch vernünftig dokumentieren und abtippen. |
Re: Aufgabe: Algorithmus eines Zauberwürfels
Zitat:
Wenn das nicht ginge/zu kompliziert wäre:
Delphi-Quellcode:
private
FBestWay: array of Byte; // Speicherung des bisher besten Weges FCurrentWay: array of Byte; // Speicherung des aktuell berechneten Weges function AllTried(const Way: array of Byte): Boolean; // prüft, ob alles probiert wurde procedure CalcWay(var Way: array of Byte); // Berechnet nächsten Weg function Solved(var Way: array of Byte): Boolean; // geht Drehungen durch, // bei Lösung: verkürzt Way und gibt True zurück {...} implementation procedure TForm1.btnLoesen1Click(Sender: TObject); var i: Byte; begin SetLength(FCurrentWay, 30); for i := 1 to 29 do FCurrentWay[i] := 1; FCurrentWay[30] := 0; repeat CalcWay(FCurrentWay); if Solved(FCurrentWay) then begin SetLength(FBestWay, Length(FCurrentWay); FBestWay := FCurrentWay; end; until AllTried(FCurrentWay); end; {...} |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz