|
PathFinder.m2 |
TYPE Delta = [-1..1]; VAR dx, dy: ARRAY Direction OF Delta; PROCEDURE Wall(x, y: MazeIndex; dir: Direction) : BOOLEAN; VAR ch: CHAR; BEGIN ch := maze[x + dx[dir], y + dy[dir]]; RETURN (ch # space) & (ch # walk) END Wall; (* ... *) dx[east] := 0; dx[south] := 1; dx[west] := 0; dx[north] := -1; dy[east] := 1; dy[south] := 0; dy[west] := -1; dy[north] := 0; (* ... *) INC(x, dx[direction]); INC(y, dy[direction]); |
Der Ermittlung der Koordinaten von Nachbarfeldern
dienen die beiden Arrays dx und dy.
| |
Wenn wir auf dem Rand sind, ist (mit Ausnahme der
Anfangssituation) das Ziel bereits erreicht. Daher
kann dieser Fall vernachlässigt werden.
|
Copyright © 1999 Andreas Borchert, in HTML konvertiert am 04.02.1999 |