Ich hätte da noch eine Optimierungsidee:
Eigentlich reicht ja als Feld ein eindimensionaler Array mit 8 Elementen (z.B. array [1..8] of Byte), da ja auf jeder Zeile/Spalte des Schachbretts nur eine Dame stehen kann. Also gibt der Index des Arrays an, um wleche zeile es sich handelt, und der Wert selbst steht für die Spalte. Damit müsste man nicht soviele Chechks durchführen, ob die Dame an der gegenwärtigen Position geschlagen werden kann. So beduetet z.B der Code:
Delphi-Quellcode:
var Feld: array[1..8] of Byte;
...
Feld[1]:= 5;
dass in der ersten Zeile in der fünften Spalte eine Dame steht (also auf dem Feld a5).
Danach könnte man sofort zur nächsten Zeile gehen, und dort alle Positionen durchprobieren. Also ist der (Backtracking-) Aufwand viel geringer, als wenn der Algorithmus jedes einzelne Feld des Schachbrettes durchläuft.
MfG
Binärbaum