Wegsuche im Labyrinth III

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

PathFinder.m2
TYPE
   Direction = (east, south, west, north);

PROCEDURE PreviousDirection(dir: Direction) : Direction;
   (* nach rechts schauen *)
BEGIN
   IF dir = MIN(Direction) THEN
      RETURN MAX(Direction)
   ELSE
      DEC(dir); RETURN dir
   END;
END PreviousDirection;

PROCEDURE NextDirection(dir: Direction) : Direction;
   (* nach links schauen *)
BEGIN
   IF dir = MAX(Direction) THEN
      RETURN MIN(Direction)
   ELSE
      INC(dir); RETURN dir
   END;
END NextDirection;

*Bei der Linke- oder Rechte-Hand-Regel ist die Reihenfolge der Richtungen signifikant. Wenn alternativ (east, north, west, south) verwendet worden wäre, hätten wir die Rechte-Hand-Regel.
 
*INC und DEC funktionieren auch für Aufzählungs-Typen.
 
*Bei der Linke-Hand-Regel schaut PreviousDirection nach links und NextDirection nach rechts.
 

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