Ausgabe

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

GameOfLife.m2
PROCEDURE WriteWorld(world: World; height, width: WorldSize);
   (* Ausgabe von world auf stdout *)
   VAR
      line, column: WorldIndex;
BEGIN
   FOR line := 0 TO height-1 DO
      SetPos(line, 0);
      FOR column := 0 TO width-1 DO
         Write(world[line, column]);
      END;
   END;
   Flush;
END WriteWorld;

*Bei dieser Variante wurde auf WriteLn verzichtet und stattdessen SetPos in die äußere Schleife gezogen.
 
*Das Problem liegt darin, daß beim Schreiben eines Zeichens in der 80. Spalte bereits implizit ein Zeilenvorschub vorgenommen wird und ein Aufruf von WriteLn dann zu einem weiteren Zeilenvorschub führen würde.
 
*So können jetzt auf sichere Weise 80 Spalten genutzt werden und nicht nur 79.
 

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