10 ! GAMELIFE.GAM = GAME OF LIFE 20 ! Se Min Hemdator, februari 84 30 ! ANPASSAT F\R ABC800 AV BERTIL M]RTENSSON 40 ! WORD & MUSIC LUND 046-145524 50 ! 60 ! INL[SNING AV URKOLONI MED 70 ! DATASATS SOM GER STARTM\NSTER, 80 ! D[R X L[SER KOLUMN, Y L[SER RAD. BILDEN [R JUSTERAD 85 ! MOT MITTEN, S] MITTEN ANGES AV X = 20, Y = 15 86 ! STARTFIGUR L[GGS ALLTS] SOM DATASATS. 88 ! 89 SINGLE : INTEGER 90 DATA 18,9,19,9,19,10,19,11,19,12,19,13,18,13 100 DATA 0,0 110 ! 115 EXTEND : DIM P(2,39,24) 117 Z=FNRubrik 118 ; CUR(10,25) "Vill du veta livsvillkoren"; : INPUT S$ 119 IF S$="J" OR S$="j" THEN Z=FNRegler ELSE Z=FNRubrik 120 Sn=1 130 ! 140 READ X,Y 150 IF X=0 THEN 190 160 GOSUB 560 170 GOTO 140 180 ! 190 ! ============== HUVUDLOOP ================== 200 ! 210 Nn=Nn+1 ! GENERATIONSR[KNARE 220 ! 230 ! RENSNING 240 FOR Xr=0 TO 39 250 FOR Yr=0 TO 24 260 P(Sn,Xr,Yr)=0 270 NEXT Yr 280 NEXT Xr 290 ! 300 Sn=3-Sn 310 ! 326 T1=0 ! Nollst{ller population 330 FOR X=1 TO 38 ! 340 FOR Y=1 TO 23 350 ! 360 ON P(Sn,X,Y)+1 GOSUB 440,440,510,560,440,440,440,440,440,440 370 ! 380 NEXT Y 390 NEXT X 400 GOTO 180 410 END 420 ! =============== SUBRUTINER =================== 430 ! 440 ! 0,1 ELLER FLER [N 3 GRANNCELLER 450 ! 460 P(0,X,Y)=0 470 ; CUR(Y,X+20) " "; 480 ! 490 RETURN 500 ! ---------------------------------------------- 510 ! TV] GRANNCELLER 520 ! 530 IF P(0,X,Y)=0 THEN RETURN 540 GOTO 560 550 ! ----------------------------------------------- 560 ! CELL F\DS/\VERLEVER 570 ! 580 P(0,X,Y)=1 590 ! 600 FOR Xx=-1 TO 1 610 FOR Yy=-1 TO 1 620 IF Xx=0 THEN IF Yy=0 THEN GOTO 640 630 P(3-Sn,X+Xx,Y+Yy)=P(3-Sn,X+Xx,Y+Yy)+1 640 NEXT Yy 650 NEXT Xx 660 ; CUR(Y,X+20) "*"; : T1=T1+1 670 ! 674 ; CUR(2,62) "Generation:" Nn 676 ; CUR(4,62) "Population:" T1 680 RETURN 690 DEF FNRegler 695 Z=FNRubrik 700 ; : ; 710 ; ,"Du kan i GAME OF LIFE av J H Conway studera en cell-" 720 ; ,"kolonis utveckling. Principer:" 730 ; 740 ; ,"Man lever i ett rutm|nster, livsvillkoren best{ms av" 750 ; ,"grannskapsf|rh}llanden." 760 ; 770 ; ,"Om en ruta omges av 3 celler i de 8 rutorna runt om, f|ds" 780 ; ,"i den en ny cell." 790 ; 800 ; ,"Om en cell har fler {n 3 grannar, d|r den av tr{ngsel." 810 ; 820 ; ,"Om en cell har 1 eller 0 grannar d|r den av ensamhet." 830 ; 840 ; ,"Om en cell har 2-3 grannar |verlever den." 850 ; 860 ; ,"F|delse och d|d sker samtidigt. En nyf|dd cell p}verkar" 870 ; ,"inte det som skedde |gonblicket innan." 875 ; 877 ; ,"N{r du l{st f{rdigt, tryck p} RETURN. "; : GET S$ 878 Z=FNRubrik ! radera allt utom rubrik 880 RETURN 0 890 FNEND 900 DEF FNRubrik ! Radera sk{rm och skriv rubrik 905 ; CHR$(12) 910 ; CUR(0,25) "< G a m e o f l i f e >" 920 RETURN 0 930 FNEND