d > Biomorphs 1.02 n by Mike Cook x (c) Micro User } Tweeked by JGH 1  morph(5,12),parent(5)  gi(5,2),px(12),py(12) < READ IN INCREMENTS AND LIMITS (MIN & MAX) OF EACH GENE dH@  A%=0 2: B%=0 5  gi(B%,A%):: 4 1,4,0.16,0.2,0.16,2 :REM GENE INCREMENTS - 1,-36,-3.14,0.1,-3.14,-18 :REM GENE MIN - 9,36,3.14,10,3.14,18 :REM GENE MAX $ ::<>17:" at line ";:A%= 1 +_INTPOS : INITIALISE DISPLAY POSITION !_INTP : INITIALISE PARENT gen=0  0   gen=gen+1 " _MUTATE , _DISPLAY 6 _CHOSE @ J _INTP T A$="C" ^parent(0)=1 hparent(1)=4 rparent(2)=.785 |parent(3)=1 parent(4)=0 parent(5)=0  A$="A"  A%=0 5  parent(A%)=((5)+1)*gi(A%,0)  parent(0)=(3)+1   _MUTATE  B%=1 12  A%=0 5 morph(A%,B%)=parent(A%)  (B%2) D%=-1 D%=1 C%=(B%-1)2  C%<>A% TpB V morph(A%,B%)+D%*(gi(A%,0))gi(A%,2) TpB &+morph(A%,B%)=morph(A%,B%)+D%*(gi(A%,0)) 0 :: : _DISPLAY D _LINES NO_TREE(parent(0),parent(1),parent(2),parent(3),parent(4),parent(5),640,500) X A%=1 12 ba_TREE(morph(0,A%),morph(1,A%),morph(2,A%),morph(3,A%),morph(4,A%),morph(5,A%),px(A%),py(A%)) l: v _INTPOS  DHC  A=1 12  px(A),py(A): '13;"Biomorph" )"An exercise in Darwinian Evolution" 11;"By Mike Cook" +'"Based on an idea by Richard Dawkins" '2"Author of THE BLIND WATCHMAKER" )''"Options to start evolving from:"' "A - A microbe." "B - Some random point." "C - A defined point." "Q - Quit." &'"Press the key of your choice:"; 'A$=( &DF):"ABCQ",A$)=0 TBC A$: A$="Q":  : A$<>"C"  A%=0 5  Q"Gene number ";A%;" (";(gi(A%,1)/gi(A%,0));" to ";(gi(A%,2)/gi(A%,0));")"; *3 ": "parent(A%):parent(A%)=parent(A%)*gi(A%,0) 4N parent(A%)<(gi(A%,1)/gi(A%,0)) parent(A%)>(gi(A%,2)/gi(A%,0)): T`C >: HH 160,860,480,860,800,860,1120,860,160,604,1120,604,160,348,1120,348 R" 160,92,480,92,800,92,1120,92 \ _LINES f 12,23,1,0;0;0;0;5 p z X%=320 960 320  Y%=256 800 256  X%,0: X%,1023  0,Y%: 1259,Y% :  640,260: 7,640,764  324,512: 7,958,512  A%=1 12  px(A%)-150,py(A%)-60  &40+A%:  536,338+16 "PARENT BIOMORPH"  504,755 "GENERATION NUMBER ";gen 4:  _CHOSE 5: 368,322 < A%=0 5:;A%;":";è(parent(A%)/gi(A%,0))+" ",5);:  336,290 $-"A-L: Breed from child, R: Random child" .A$= 8'C%=((A$)&DF)-&40: C%=18:C%=(12) B C%<1 C%>12 _REVIEW: L A%=0 5 Vparent(A%)=morph(A%,C%) ` :4: j _REVIEW t 22,1 ~''"Current Biomorph has:"  A%=0 5 /"GENE ";A%" VALUE ";(parent(A%)/gi(A%,0))  O_TREE(parent(0),parent(1),parent(2),parent(3),parent(4),parent(5),640,300) (0,30);"Press any key to continue"; A$=:gen=gen-1:22,0  ! _TREE(D,L,dA,AR,DT,DS,X,Y)  X,Y: X,Y-L _GROW(/2,L,X,Y,D)   _GROW(TH,L,X,Y,D)  D X,Y  dX=L*(TH+dA)*(1/AR) dY=L*(TH+dA)*AR  1,dX,dY ('_GROW(TH+dA+DT,L-DS,X+dX,Y+dY,D-1) 2 X,Y <dX=L*(TH-dA)*(1/AR) FdY=L*(TH-dA)*AR P 1,dX,dY: X,Y Z'_GROW(TH-dA-DT,L-DS,X+dX,Y+dY,D-1) d