Thema: Delphi 8-Damen-Problem

Einzelnen Beitrag anzeigen

Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#18

Re: 8-Damen-Problem

  Alt 28. Jan 2005, 11:17
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
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat