File GAMOLI.PS

Directory of image this file is from
This file as a plain text file

PROGRAM GAMEOFLIFE (INPUT,OUTPUT);
CONST MAX1=9 ; MAX2=10;
B="*"; F=" ";
VAR ZAELER:ARRAY[1..MAX1,1..MAX1] OF INTEGER;
ALT,NEU:ARRAY[0..MAX2,0..MAX2] OF CHAR;
ANTWORT,WAHL,N,J,I,ZEILE,SPALTE:INTEGER;
PROCEDURE BESETSTENACHBARNZAELEN;
VAR I,J,X,Y :INTEGER;
BEGIN FOR I:=1 TO MAX1
DO FOR J:=1 TO MAX1
DO BEGIN ZAELER[I,J]:=0;
FOR X:=I-1 TO I+1
DO FOR Y:=J-1 TO J+1
DO IF ALT[X,Y]=B
THEN ZAELER[I,J]:=ZAELER[I,J]+1;
IF ALT[I,J]=B
THEN ZAELER[I,J]:=ZAELER[I,J]-1
END;
END;
PROCEDURE EINSBISDREISSIG;
BEGIN
CASE WAHL OF
1:ALT[1,1]:=B;
2:ALT[1,2]:=B;
3:ALT[1,3]:=B;
4:ALT[1,4]:=B;
5:ALT[1,5]:=B;
6:ALT[1,6]:=B;
7:ALT[1,7]:=B;
8:ALT[1,8]:=B;
9:ALT[1,9]:=B;
10:ALT[2,1]:=B;
11:ALT[2,2]:=B;
12:ALT[2,3]:=B;
13:ALT[2,4]:=B;
14:ALT[2,5]:=B;
15:ALT[2,6]:=B;
16:ALT[2,7]:=B;
17:ALT[2,8]:=B;
18:ALT[2,9]:=B;
19:ALT[3,1]:=B;
20:ALT[3,2]:=B;
21:ALT[3,3]:=B;
22:ALT[3,4]:=B;
23:ALT[3,5]:=B;
24:ALT[3,6]:=B;
25:ALT[3,7]:=B;
26:ALT[3,8]:=B;
27:ALT[3,9]:=B;
28:ALT[4,1]:=B;
29:ALT[4,2]:=B;
30:ALT[4,3]:=B END
END;
PROCEDURE SPIELSTANDAUSGEBEN;
VAR I,J :INTEGER;
BEGIN WRITELN ; WRITELN ; WRITELN;
FOR I:=1 TO MAX1
DO BEGIN FOR J:=1 TO MAX1
DO WRITE (ALT[I,J]:1);
WRITELN
END
END;

PROCEDURE EINUNDSECHZIGBISENDE;
BEGIN
CASE WAHL OF
61:ALT[7,7]:=B;
62:ALT[7,8]:=B;
63:ALT[7,9]:=B;
64:ALT[8,1]:=B;
65:ALT[8,2]:=B;
66:ALT[8,3]:=B;
67:ALT[8,4]:=B;
68:ALT[8,5]:=B;
69:ALT[8,6]:=B;
70:ALT[8,7]:=B;
71:ALT[8,8]:=B;
72:ALT[8,9]:=B;
73:ALT[9,1]:=B;
74:ALT[9,2]:=B;
75:ALT[9,3]:=B;
76:ALT[9,4]:=B;
77:ALT[9,5]:=B;
78:ALT[9,6]:=B;
79:ALT[9,7]:=B;
80:ALT[9,8]:=B;
81:ALT[9,9]:=B END
END;
PROCEDURE ZWEIUNDDREISSIGBISSECHZIG;

BEGIN
CASE WAHL OF
31:ALT[4,4]:=B;
32:ALT[4,5]:=B;
33:ALT[4,6]:=B;
34:ALT[4,7]:=B;
35:ALT[4,8]:=B;
36:ALT[4,9]:=B;
37:ALT[5,1]:=B;
38:ALT[5,2]:=B;
39:ALT[5,3]:=B;
40:ALT[5,4]:=B;
41:ALT[5,5]:=B;
42:ALT[5,6]:=B;
43:ALT[5,7]:=B;
44:ALT[5,8]:=B;
45:ALT[5,9]:=B;
46:ALT[6,1]:=B;
47:ALT[6,2]:=B;
48:ALT[6,3]:=B;
49:ALT[6,4]:=B;
50:ALT[6,5]:=B;
51:ALT[6,6]:=B;
52:ALT[6,7]:=B;
53:ALT[6,8]:=B;
54:ALT[6,9]:=B;
55:ALT[7,1]:=B;
56:ALT[7,2]:=B;
57:ALT[7,3]:=B;
58:ALT[7,4]:=B;
59:ALT[7,5]:=B;
60:ALT[7,6]:=B END
END;
BEGIN(*HAUPTPROGRAMM BEGINNT HIER!!!*) WRITELN("WIVIELE GENERATIONEN SOLLEN GEDRUCKT WERDEN");READ(N);WRITELN;
FOR ZEILE:=0 TO MAX2
   DO FOR SPALTE:=0 TO MAX2
DO BEGIN ALT[ZEILE,SPALTE]:=F;
NEU[ZEILE,SPALTE]:=F;
END;
WRITELN("WELCHE FELDER WOLLEN SIE BESETZEN?");
WRITELN("GEBEN SIE DIE CODENUMMER IN DEM GEWUENSCHTEN FELD EIN");
WRITELN("0=ENDE DER EINGABE-START DES SPIELS");
WRITELN(" | 1| 2| 3| 4| 5| 6| 7| 8| 9|");
WRITELN("-----------------------------");
WRITELN("1>01|02|03|04|05|06|07|08|09|");
WRITELN("2>10|11|12|13|14|15|16|17|18|");
WRITELN("3>19|20|21|22|23|24|25|26|27|");
WRITELN("4>28|29|30|31|32|33|34|35|36|");
WRITELN("5>37|38|39|40|41|42|43|44|45|");
WRITELN("6>46|47|48|49|50|51|52|53|54|");
WRITELN("7>55|56|57|58|59|60|61|62|63|");
WRITELN("8>64|65|66|67|68|69|70|71|72|");
WRITELN("9>73|74|75|76|77|78|79|80|81|");
WRITELN;WRITELN;WRITELN;
REPEAT BEGIN
READ(WAHL);
IF (WAHL>=1)AND(WAHL<=30) THEN EINSBISDREISSIG;
IF (WAHL>=31)AND(WAHL<=60) THEN ZWEIUNDDREISSIGBISSECHZIG;
IF (WAHL>=61)AND(WAHL<=81) THEN EINUNDSECHZIGBISENDE END
UNTIL WAHL=0;
WRITELN;
WRITELN;
WRITELN;
ANTWORT:=0;
WRITE("GENERATION:",ANTWORT); SPIELSTANDAUSGEBEN;
REPEAT BEGIN BESETSTENACHBARNZAELEN;
ANTWORT:=ANTWORT+1;WRITE("GENERATION:",ANTWORT);
FOR I:=1 TO MAX1
DO FOR J:=1 TO MAX1
DO IF ALT[I,J]=F
THEN IF ZAELER[I,J]=3
THEN NEU[I,J]:=B
ELSE NEU[I,J]:=F
ELSE IF(ZAELER[I,J]<2)
OR (ZAELER[I,J]>3)
THEN NEU[I,J]:=F
ELSE NEU[I,J]:=B;
ALT:=NEU ; SPIELSTANDAUSGEBEN ;WRITELN;WRITELN;WRITELN;END;
UNTIL ANTWORT=N
END.



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search