Rahmen beim n-Damen-Problem

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

Queens.om
PROCEDURE Solve(start: BOOLEAN; board: Board;
                row, col: Position);
BEGIN
   IF ~start THEN
      AddQueen(board, row, col);
   END;
   IF board.nofqueens = board.size THEN
      WriteBoard(board); (* board is solved *)
   ELSE
      row := board.nofqueens;
      col := 0;
      WHILE col < board.size DO
         IF ~Threatened(board, row, col) THEN
            Solve(FALSE, board, row, col);
         END;
         INC(col);
      END;
   END;
END Solve;

*Abgesehen davon, daß hier alle Lösungen erwünscht sind, entspricht dies dem vorgestellten Rahmen.
 
*row und col spezifizieren jeweils die Position für die nächste Dame.
 
*Bei der k-ten Dame wird nur die k-te Zeile berücksichtigt.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 1999 Andreas Borchert, in HTML konvertiert am 29.06.1999