PROCEDURE initvars; VAR a,b:integer; BEGIN FOR a:=0 TO 15 DO BEGIN Muehlen_menge[a]:=[]; FOR b:=0 TO 2 DO Muehlen_menge[a]:=[Muehlen[a,b]]+Muehlen_menge[a]; END; END; PROCEDURE zeige_Status(x : tstein); CONST ModusAnz:ARRAY[Setzen..Springen] OF STRING[8]= ('Setzen','Ziehen','Springen'); BEGIN WITH Feld DO BEGIN gotoxy(57,10); write('Spielersteine : ',Status[Spieler].steine); gotoxy(57,11); write('Rechnersteine : ',Status[Rechner].steine); gotoxy(57,14); write('Modus : ',ModusAnz[Status[x].Modus]); END; ClrEol; END; PROCEDURE hole_Spielstaerke; VAR CH:char; BEGIN gotoxy(35,22); ClrEol; LowVideo; write('Spielstaerke (1..',MaxSp,') ? '); HighVideo; REPEAT read(KBD,CH); Spielstaerke:=ord(CH)-ord('0'); UNTIL Spielstaerke IN [1..MaxSp]; gotoxy(57,8); write('Spielstaerke ',Spielstaerke); END; FUNCTION Antwort_Ja(Frage:tstr):boolean; VAR CH:char; BEGIN gotoxy(35,22); ClrEol; LowVideo; write(Frage,' (J/N) ? '); HighVideo; REPEAT read(KBD,CH); CH:=upcase(CH); UNTIL CH IN ['J','N']; Antwort_Ja:=CH='J'; END; PROCEDURE verloren(wer_denn:tstein); BEGIN gotoxy(1,23); LowVideo; IF wer_denn=Spieler THEN write(' Sie haben') ELSE write(' Ich habe'); write(' verloren ! '); normvideo; Spiel_ist_aus:=true; END; PROCEDURE Initial; (* Bildschirm aufbauen und Anfangswerte festlegen *) VAR k:tstein; i:integer; BEGIN ClrScr; writeln('CHIP-Special-Muehle':41); gotoxy(1,3); writeln('':19,'A B C D E F G'); writeln; LowVideo; writeln('':19,' --------- --------- ','Mensch : ':23,steine[Spieler]); writeln('':19,'| | |','Computer : ':23,steine[Rechner]); writeln('':19,'| ----- ----- |'); writeln('':19,'| | | | |'); writeln('':19,'| | --- --- | |'); writeln('':19,'| | | | | |'); writeln('':19,' --- --- --- --- '); writeln('':19,'| | | | | |'); writeln('':19,'| | --- --- | |'); writeln('':19,'| | | | |'); writeln('':19,'| ----- ----- |'); writeln('':19,'| | |'); writeln('':19,' --------- --------- '); writeln; HighVideo; writeln('':19,'A B C D E F G'); FOR i:=1 TO 7 DO BEGIN gotoxy(16,2*i+3); write(i); gotoxy(48,2*i+3); write(i); END; gotoxy(5,22); write('Computerzug :'); fillchar(Feld.Brett,SizeOf(Feld.Brett),leer); FOR k:=Spieler TO Rechner DO WITH Feld.Status[k] DO BEGIN Modus:=Setzen; steine:=0; zaehler:=9; END; Feld.Muehle:=false; Spiel_ist_aus:=false; hole_Spielstaerke; END;