Einlesen eines Labyrinths III

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

PathFinder.m2
PROCEDURE ReadMaze(input: FILE;
                   VAR maze: Maze;
                   VAR width, height: MazeSize;
                   VAR entry, exit: MazeIndex) : BOOLEAN;
   VAR
      line, column: MazeSize;
      ch: CHAR; (* zuletzt eingelesenes Zeichen *)
      entryFound, exitFound: BOOLEAN;
      spaceSeen: BOOLEAN;
BEGIN
   line := 0; column := 0; width := 0;
   entryFound := FALSE; exitFound := FALSE;
   spaceSeen := FALSE;
   (* ... *)
END ReadMaze;

*Die Musterlösung führt sämtliche Prozeduren in der Eingabeprozedur zum jeweils frühestmöglichen Zeitpunkt durch.
 
*In den Variablen entryFound und exitFound wird notiert, ob Ein- und Ausgang bereits gefunden worden sind, da wir davon jeweils genau einen erwarten.
 
*spaceSeen ist genau dann wahr, wenn in der letzten eingelesenen Zeile mindestens ein Leerzeichen gesehen worden ist. Damit läßt sich am Ende sofort überprüfen, ob ein ``Loch'' in der untersten Zeile vorhanden ist (was nicht erlaubt ist).
 

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