home *** CD-ROM | disk | FTP | other *** search
- 0 GENERATIONS=25
- 1 MAXMICE=400:MAXOWLS=10:MINMICE=3:MINOWLS=1:SQUARE=50
- 2 DIM O(GENERATIONS),M(GENERATIONS)
- 5 TEXT:HOME
- 10 RANDOMIZE
- 15 RANDOMIZE(PEEK(&HF000+78)+PEEK(&HF000+79)*256-32768!)
- 20 HOME:PRINT"HOOT WOODS SIMULATION":PRINT:PRINT
- 30 PRINT"How many mice will you start with? ("MINMICE"-"MAXMICE") ";
- 40 INPUT "",M$:IF VAL(M$)<MINMICE OR VAL(M$)>MAXMICE THEN 30
- 50 PRINT"How many owls will you start with? ("MINOWLS"-"MAXOWLS") ";
- 60 INPUT "",O$:IF VAL(O$)<MINOWLS OR VAL(O$)>MAXOWLS THEN 50
- 70 HGR:HCOLOR=3
- 80 XC=140-SQUARE/2:YC=80-SQUARE/2
- 85 HPLOT XC,YC TO XC+SQUARE+1,YC TO XC+SQUARE+1,YC+SQUARE+1 TO XC,YC+SQUARE+1 TO XC,YC
- 90 M=VAL(M$):O=VAL(O$):G=1
- 100 FOR K=1 TO M
- 110 X=INT(RND*SQUARE)+XC+1:Y=INT(RND*SQUARE)+YC+1
- 120 IF HSCRN(X,Y) THEN 110
- 130 HPLOT X,Y
- 140 NEXT K
- 145 FOR G=1 TO GENERATIONS
- 150 VTAB 24:PRINT"GENERATION:"G" MICE:"M" OWLS:"O;
- 152 O(G)=O:M(G)=M
- 155 DEAD=0:BABIES=0
- 160 FOR W=1 TO O
- 165 HCOLOR=3
- 170 X=INT(RND*(SQUARE-6))+XC+1:Y=INT(RND*(SQUARE-6))+YC+1
- 175 KILLED=0
- 180 FOR A=X TO X+6:FOR B=Y TO Y+6
- 190 IF HSCRN(A,B) THEN KILLED=KILLED+1
- 200 HPLOT A,B
- 210 NEXT B,A
- 220 HCOLOR=0:FOR A=X TO X+6:HPLOT A,Y TO A,Y+6:NEXT
- 230 IF KILLED<3 THEN O=O-1 ELSE BABIES=BABIES+KILLED\3
- 235 DEAD=DEAD+KILLED
- 240 NEXT W
- 245 M=M-DEAD
- 250 PRINT" MICE CAUGHT:";DEAD;" SURVIVING MICE:";M;" OWLS STARVED:";W-O-1;" OWL BABIES:";BABIES;" BABY MICE:";
- 260 IF M<MINMICE THEN M=MINMICE
- 265 HCOLOR=3
- 267 IF M=MAXMICE THEN BABYMICE=0 ELSE IF M*2>MAXMICE THEN BABYMICE=MAXMICE-M ELSE BABYMICE=M
- 269 PRINT BABYMICE
- 270 FOR K=1 TO BABYMICE
- 280 X=INT(RND*SQUARE)+XC+1:Y=INT(RND*SQUARE)+YC+1
- 290 IF HSCRN(X,Y) THEN 280
- 300 HPLOT X,Y:NEXT K
- 310 IF O<MINOWLS THEN O=MINOWLS
- 320 O=O+BABIES
- 325 M=M+BABYMICE
- 330 NEXT G
-