|
Queens.om |
PROCEDURE Threatened(board: Board; row, col: Position) : BOOLEAN; BEGIN ASSERT((row >= 0) & (row < board.size) & (col >= 0) & (col < board.size)); RETURN (row IN board.rows) OR (col IN board.cols) OR (row - col + board.size - 1 IN board.diags1) OR (row + col IN board.diags2) END Threatened; |
Der Überprüfungsaufwand von Threatened liegt
jetzt bei O(1).
| |
ASSERT erhält einen Ausdruck vom Typ BOOLEAN
und führt zu einem Laufzeitfehler, falls dieser Ausdruck
FALSE sein sollte. Auf diese Weise lassen sich recht
elegant zusätzliche Überprüfungen einfügen.
|
Copyright © 1999 Andreas Borchert, in HTML konvertiert am 29.06.1999 |