(***************************************************************************) (** Die Bildschirmausgabe des Spielfelds **) (***************************************************************************) PROCEDURE SchreibSpielfeld(SF: SpielFeld); CONST (*koennen an die jeweils gegebenen Moeglichkeitem angepasst werden*) (*Hier: Anpassung fuer JOYCE/PCW *) LO = #134; (*Ecke links oben *) RO = #140; (*Ecke rechts oben*) SE = #133; (*senkrechter Strich*) WA = #138; (*waagrechter Strich*) LU = #131; (*Ecke links unten*) RU = #137; (*Ecke rechts unten*) SL = #141; (*Lot nach rechts*) SR = #135; (*Lot nach links*) SO = #139; (*Lot nach oben*) SU = #142; (*Lot nach unten*) KR = #143; (*Kreuz*) VAR i, j: integer; PROCEDURE LinieOben; VAR i: integer; BEGIN write(' ',LO); FOR i:=1 TO Groesse-1 DO write(WA,WA,WA,SU); writeln(WA,WA,WA,RO,' ') END; PROCEDURE LinieUnten; VAR i: integer; BEGIN write(' ',LU); FOR i:=1 TO Groesse-1 DO write(WA,WA,WA,SO); writeln(WA,WA,WA,RU,' ') END; BEGIN lowvideo; gotoxy(1,4); write(' '); FOR j:=1 TO Groesse DO write(chr(64+j):4); writeln(' '); LinieOben; FOR i:=Groesse DOWNTO 1 DO BEGIN write(i:2,SE); FOR j:=1 TO Groesse DO CASE SF[j,i] OF leer : write(' ',SE); computer: write(' ',ComputerZeichen,' ',SE); mensch : write(' ',MenschZeichen, ' ',SE) END; writeln(i,' '); IF i>1 THEN BEGIN write(' ',SR); FOR j:=1 TO Groesse-1 DO write(WA,WA,WA,KR); writeln(WA,WA,WA,SL,' ') END ELSE LinieUnten END; write(' '); FOR j:=1 TO Groesse DO write(chr(64+j):4); writeln(' '); normvideo END;