Einzelnen Beitrag anzeigen

Klaus135

Registriert seit: 17. Jan 2014
3 Beiträge
 
#1

Magisches Quadrat per Backtracking

  Alt 17. Jan 2014, 18:25
Hallo,
unser Informatiklehrer ist bedauerlicherweise eine totale Pfeife und so arbeite ich mir zum Verständnis üblicherweise alle Projekte aus der Schule selbst nach und versuche sie zu begreifen und diesmal handelt es sich um das Programmieren eines magischen Quadrats(alle Zeilen, Spalten und Diagonalen eines Quadrats mit einer Kantenlänge von n bilden die gleiche Summe, weobeiu jede Zahl von 1 bis n^2 genau ein Mal vorkommt.
1. Das Quadrat stelle ich durch ein Stringgrid mit Rowcount und Colcount=n dar.
2. In dieses Stringgrid schreibe ich nun in "Reihenfolge" die Zahlen von 1 bis 9(3x3).
3. Die Zahlen im Quadrat werden so miteinander vertauscht, dass jede mögliche Kombination ein Mal vorkommt.
4. In jener Prozedur unter 3. befindet sich eine Abbruchbedingung(Magisches Quadrat erfüllt), bei der die Lösung in einem Memo oder ähnlichem gespeichert wird.

Die Abbruchbedingung, als eine Funktion mit Boolean-Augabe, zu formulieren ist genausowenig ein Problem wie das Befüllen des Stringgrids, mein Problem liegt im 3. Schritt, ich beiße mir seit Stunden die Zähne an diesem Tausch-Algorithmus aus. Ein Mal Durchtauschen geht ja noch, aber wie klappere ich alle Möglichkeiten ab, müsste man das mit einer rekursiven Prozedur umsetzen? Mir fehlt einfach der Ansatz :/
Schon Mal danke im Voraus
  Mit Zitat antworten Zitat