AutomataU2 $U1 $TwoGuns$OldLife$Life $LIFCODE$LfText2$Grid2 $Grid1 $Greg1 $GobSpr $GobCode$Gobbler$Gobble8$Gliders$GliderG$Curtain$!ReadMe$ 0K|KtKl#dC\ Y + WC2 EK=K5K-@,7'C^L#C^LKtBjLKFLAUTOMATA ~~~~~~~~ Gobbler, originally in Acorn User Gobble8 - original program Gobbler - modified to have 'seasons' of grass growing GobCode - machine code for Gobbler GobSpr - sprite for the gobbling bugs. Gobbler is a modified version of the grass-eating bug program, which allows the growth of the grass to be altered dynamically. As set up, the grass grows according to a SIN wave dependant on the generation, so imitating seasonal growth. Line 20 has g$=.... which can be altered to any function you like, with gen% the current generation. It should not vary beyond 0 to 40. Life, originally in Acorn User May 1990, improved version by me in Acorn User Jan 1992. OldLife - original program Life - improved to have load/save, old age, easier editing, etc. LIFCODE - machine code for life LfText - Text of article in AU Sample Life patters: Curtains, GliderGun, Gliders, Greg1, Grid1, Grid2, TwoGuns, U1, U2. AUTOMATA ~~~~~~~~ Gobbler, originally in Acorn User Gobble8 - original program Gobbler - modified t8888888888888888888888888:;8:;8:;8:;99998888888888888888888888888:;8:;8:;8:;99998888888899998:;8:;8:;8:;8:;8:;8:;8:;99998888888888888888888888888:;8:;8:;8:;9999  > Gobble8 (Info8)  8 bit evolution  by Dave Acton ( for B/B+/M/C/E 2 BAU Oct 91 < Original version F: P" >&1400 =&1400:"Gobble8" Z1 d23;8202;0;0;0; n19,1,2;0; x19,2,6;0; =&1A00 g%(11) *LOAD GobCode 1A00 sprinkle=&1A00 dobugs=&1A03 initgenes=&1A06 stats=&1A09 pop=&1A0C !&1A0F=   x%=34*32  i%=0 11 y%=1028-32*(i%+8)  0,3  x%,y% " 1,24,0 , 1,0,24 6 1,-24,0 @ 1,0,-24 J a=i%*/6 T x%+12,y%+12 ^ 1,12*(a),12*(a) h r3 |33,0)"Gen:" 33,3)"Pop:" 33,6)"Genes:" 2  initgenes sprinkle(1550) yplot%=400 plotcol%=2  gen%=0   it%=1 10 sprinkle(25)  dobugs  gen%=gen%+10 t%=0  A%=0 11 &g%(A%)=(stats)&FFFF 0t%=t%+g%(A%) : Dt%>0 stats N t%=0 X b l: v stats n%=(pop)&FF 34,1);gen% 34,4);n%;" " i%=0 11 +35,i%+7)" "+è(g%(i%)/t%*100),3)"%"   0,0  1024,yplot%  1280,yplot%  0,plotcol% ! 69,1040+224*(n%/256),yplot% yplot%=yplot%-4 ,yplot%<0 yplot%=400:plotcol%=5-plotcol%   : sprinkle(n%)   * A%=n% 4 A%>256 A%=256 > sprinkle H n%=n%-A% R n%=0 \  > Gobble8 (Info8)  8 bit evolutio  >Gobbler "n%=0:g$="20+10*SINRAD(gen%/2)" >&1400:=&1400:"Gobbler" (F1:23;8202;0;0;0;19,1,2;0;19,2,6;0;:=&1A00:g%(11):*LOAD GobCode 2spr=&1A00:dob=&1A03:ini=&1A06:sta=&1A09:pop=&1A0C:!&1A0F=::x%=1088:i%=0 11:y%=1028-32*(i%+8):0,3:x%,y%:1,24,0:1,0,24:1,-24,0:1,0,-24:a=i%*/6:x%+12,y%+12:1,12*(a),12*(a): <3:33,0)"Gen:"33,2)"Pop:"33,4)"Grass:"33,6)"Genes:":2:ini:spr(1550):yplot%=400:plotcol%=2:gen%=0:it%=1 10:spr((g$)):dob: FPgen%=gen%+10:t%=0:A%=0 11:g%(A%)=(sta)&FFFF:t%=t%+g%(A%)::t%>0 stats P,t%=0:8,31)"Population dead";::: Znstats:n%=(pop)&FF:34,1);gen%34,3)" "+n%,3):i%=0 11:35,i%+7)" "+è(g%(i%)/t%*100),3)"%": d0,0:1024,yplot%:1280,yplot%:0,plotcol%:69,1040+224*(n%/256),yplot%:0,1:69,1040+224*(g%/48),yplot%:yplot%=yplot%-4:yplot%<0 yplot%=400:plotcol%=5-plotcol% n xspr(n%):n%<1 835,5)(n%)+" ",4);:g%=n%:A%=n%:A%>256 A%=256 spr:n%=n%-A%:n%=0:  >Gobbler "n%=0:g$="20+10*SINLLLL$Lx"`i$" e륀`| vr1tp%|rwx1tp%|xz`) ipiqpi@tqiu)rr*sJJJ)w}_erress8wvrixxsiyz`r$s>rs " T T!(" T)i# J` T) `HH][8....hh`v T T r=Or=SWrv`H)rr*sJJJ)}_erressh)`{{"7! O  {"8#"L"P ! S{м`"`"J8"" !!##$ J T#ɲ### Ji$ Ji$i8 q``$ T){eņ{}   y !y!`vw{!ev ew r=OWr=Sr{"i"wv`D"wSv0257:Life By J.G.Harston :A%=130:(&FFF4 &FFFF00)<>&FFFF00 "Turn off Tube.": % !&900<>&8A27385 *LOAD LIFCODE (*K.0 2>&1400 r < *FX4,1 FX%=1:A%=114:&FFF4:*TV0,1 P0:23;8202;0;0;0;:=&2000:J%=(-):G%=&7B:d%=&7F:Z%=&900:L%=&914:c%=&2000:V%=&2800:t:?d%=10:F%=3:B%=4:19,0,B%;0;19,1,F%;0; Z!A%=c%256:Z%: x "FX4": d:e:Q%=10 o n: xv:28,64,31,79,0,17,129,17,0,12:5,2)"LIFE"2,5)"P - pause"2,7)"O - resume"2,9)"Q - quit"2,11)"1 - Slow"2,13)"2 - Medium"2,15)"3 - Fast":26,17,1,17,128 P66,25)" Gen : 0000 "X%,Y%)(p+253);:!G%=&30303030:A%=V%256:Z%:*FX229,1 L%:*FX229  at:col%=&C00:row%=&C80:J%=063:!(col%+2*J%)=J%*8:: J%=0 31:!(row%+2*J%)=&3000+J%*&280: mK%=02:23,253+K%:J%=07: D%:D%:?(&78+J%+K%*8)=D%::::K%=01:23,251+K%:J%=07: D%:D%&FF::: F 0,0,0,0,0,0,0,0,0,24,60,110,78,110,60,24,0,0,24,&2C,&24,&2C,24,0 e:17,128,28,64,31,79,0,17,129,17,0,12:5,1)"LIFE"2,3)"KEYS:-"''" Z,X,:,/,-"'" move cursor"''" SPACE BAR -"'" set cell"''" DELETE -"'" remove cell"''" R - random"''" A - age (";256-?&AFF;")" '" D - Death o";:d V'" F,B - change"'" colours"''" RETURN -"'" start"''" L - Load"''" S - Save" 426,17,1,17,128:X%=31:Y%=15:X%,Y%)(p+251);: "-101 B%=(B%+1)7:19,0,B%;0; !-68 F%=(F%+1)7:19,1,F%;0; -98-26 m(63,0) -67-122 m(1,0) -73 -1 -58 m(0,31) -105-42 m(0,1) "-99 p(?&AFF) ,-90-97 p(0) 65-83 A%=c%256:Z%:28,0,31,63,0:x:X%,Y%)251 @--52 m( 63, 31):p((255)):-52 JQ%=(20)&DF:Q%=83 s T Q%=76 l ^4Q%=68 ?&AFE=?&AFE:0:129:77,18);:d:1:128 h Q%=65 a rQ%=10-74:-74 v | d:?&AFE "n " "ff"  Rm(x%,y%):X%,Y%)(p+253);:X%=(X%+x%)63:Y%=(Y%+y%)31:X%,Y%)(p+251);: ݤp=(?(c%+X%+64*Y%)<>0)1 'p(C%):?(c%+X%+64*Y%)=C%:m(0,0): :ݤx:w:=17 "Finish? (Y/N)":( &DF)=89 x:"FX4": <>17 :Q%=  x:=-1 #w:28,64,31,79,30:129:0:: x::26:128:1: *a:w:"Max age: "Q%:Q%<10 Q%>255 926:75,16)" "75,16);Q%;")":w:"Please wait..." 0):::X%,Y%)(p+251);: &Lo:w:28,66,31,78,0,12,28,67,31,76,0:"*"A$:A$:A$="":x:-74=0: 0Kr:*KEY0 F.X%=0TO(TOP-PAGE)S.4:X%!&1400=X%!PA.:N.:PA.=&1400|MO.|MRUN|M : *FX225,1 D*FX138,0,128 N  >Life By J.G.Harston :A%=130:(&FFF4 &FFFF00)<>&FFFF00 "Turn off Tube.": % !&900<>&8A27385 *LOAD LIFCODE (*K.0 2>&1400 r < *FX4,1 FX%=1:A%=114:&FFF4:*TV0,1 P0:23;8202;0;0;0;:=&2000:J%=(-):G%=&7B:d%=&7F:Z%=&  >Life By Phil Bender :A%=130:(&FFF4 &FFFF00)<>&FFFF00 "Turn off Tube.": ) !&900<>&8A27385 *LOAD LIFCODE 900 (>&1400 r 2 *TV0,1 < *FX4,1 F0:23;8202;0;0;0;:=&2000:J%=(-):G%=&7B:d%=&7F:Z%=&900:L%=&914:c%=&2000:V%=&2800:t:?d%=10:F%=3:B%=4:19,0,B%;0;19,1,F%;0;: x P A%=c%256:Z%:!G%=&30303030:e:A%=V%256:Z%:L%:0:129:65,20)" Again? (Y/N) ": K%= &DF: K%=78 K%=89: K%=78:*FX4 Z*FX4 d nat:col%=&C00:row%=&C80:J%=063:!(col%+2*J%)=J%*8:: J%=0 31:!(row%+2*J%)=&3000+J%*&280: xmK%=01:23,254+K%:J%=07: D%:D%:?(&78+J%+K%*8)=D%::::K%=01:23,252+K%:J%=07: D%:D%&FF::: . 0,0,0,0,0,0,0,0,0,24,60,110,78,110,60,24 e:17,128,12,28,64,31,79,0,17,129,17,0,12:5,2)"LIFE"5,4)"EDIT"2,6)"KEYS:-"2,8)"Z,X,:,/,-"2,9)"move cursor"2,11)"SPACE BAR -"2,12)"set cell"2,14)"DELETE -"2,15)"remove cell" 2,17)"R - random"2,19)"F,B - change"2,20)"colours"2,22)"RETURN -"2,23)"start"2,25)"L - Load"2,27)"S - Save":26,17,1,17,128:X%=31:Y%=15:X%,Y%)(p+252);: "-101 B%=(B%+1)7:19,0,B%;0; !-68 F%=(F%+1)7:19,1,F%;0; -98 m(63,0) -67 m(1,0) -73 m(0,31) -105 m(0,1) -99 p(1) -90 p(0) '-52 m( 63, 31):p(1):-74 Q%=30:Q%=83 s  Q%=76 l -74:28,64,31,79,0,17,129,17,0,12:5,2)"LIFE"2,5)"P - pause"2,7)"O - resume"2,9)"Q - quit"2,11)"1 - Slow"2,13)"2 - Medium"2,15)"3 - Fast":26,17,1,17,128 -66,25)" Gen : 0000 "X%,Y%)(p+254);: "Rm(x%,y%):X%,Y%)(p+254);:X%=(X%+x%)63:Y%=(Y%+y%)31:X%,Y%)(p+252);: ,ݤp=?(c%+X%+64*Y%) 6'p(C%):?(c%+X%+64*Y%)=C%:m(0,0): @ݤx:w::Q%=:x:=-1 J#w:28,64,31,79,29:129:0:: Tx::26:128:1: ^3s:w:"Save: "s$:"SAVE "+s$+" 2000+800":x: hl:w:"Load: "s$:"LOAD "+s$+" 2000":x:K%=031:31,0,K%:J%=063:32-223*((?(&2000+K%*64+J%))<>0):::X%,Y%)(p+252);: rKr:*KEY0 F.X%=0TO(TOP-PAGE)S.4:X%!&1400=X%!PA.:N.:PA.=&1400|MO.|MRUN|M | *FX225,1 *FX138,0,128   >Life By Phil Bender :A%