|
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.
|
Copyright © 1999 Andreas Borchert, in HTML konvertiert am 29.06.1999 |