Evolution 2


Evolution 2 contains two programs. In the first, the player controls a large gorilla which lumbers round a forest collecting bananas which drop randomly to the ground. The computer controls a small and extremely agile monkey which makes for very tough competition.

The second program in this section puts you in control of a caveman who tries to kill raiders attacking his territory from surrounding caves by firing arrows.

    1 REM *** BBC VERSION ***
    2 REM *** EVOLUTION 2 ***
   10 MODE7:PRINT'CHR$141;CHR$&84;CHR$157;CHR
$&83"           Evolution              "CHR$1
56'CHR$141;CHR$&84;CHR$157;CHR$&83"          
 Evolution              "CHR$156
   20 PRINT'CHR$&85"If you have tried the pre
vious program,"CHR$&85"this will be the 4th s
tage in the"'CHR$&85"evolution seuence."
   30 PRINT'CHR$&86"If you haven't,then the o
bject is to"'CHR$&86"evolve as far as possibl
e in a role"'CHR$&86"playing series of differ
ent"'CHR$&86"programs."
   40 PRINT'CHR$&82"In this stage,you play th
e part of a"'CHR$&82"gorilla who competes aga
inst a smaller"'CHR$&82"and faster monkey."
   50 PRINT'CHR$&83"Move using the cursor key
s,but note"'CHR$&83"you cannot go through the
 trees."
   60 PRINTTAB(0,22)CHR$136;CHR$&81"      Pre
ss Space to start.":REPEATUNTILGET=32
   70 RESTORE
   80 FORI=224TO231:VDU23,I:FORF=0TO7:READG:V
DUG:NEXTF,I
   90   DATA84,99,101,51,63,31,13,7,0,192,160
,192,248,252,190,231
  100   DATA7,7,7,14,12,12,12,28,227,225,224,
112,48,48,48,56
  110   DATA253,253,249,241,227,199,15,255,25
,25,255,188,152,60,36,102
  120   DATA8,60,126,254,255,127,126,60,24,24
,24,24,24,24,24,24
  130   MODE2:COLOUR130:FORI=0TO58:PRINT:NEXT
  140   FORF=0TO19:COLOUR1:PRINTTAB(F,29)CHR$
230;TAB(F,5)CHR$230:COLOUR4::PRINTTAB(F,6)CHR
$231;TAB(F,30)CHR$231;:NEXT
  150   FORF=7TO28STEP2:COLOUR1:PRINTTAB(0,F)
CHR$230;CHR$230;TAB(18,F)CHR$230;CHR$230:COLO
UR4:PRINTTAB(0,F+1)CHR$231;CHR$231;TAB(18,F+1
)CHR$231;CHR$231:NEXTF
  160   FORF=1TO12:X=RND(16)+1:Y=RND(20)+6:CO
LOUR1:PRINTTAB(X,Y)CHR$230:COLOUR4:PRINTTAB(X
,Y+1)CHR$231:NEXT
  170   G=2:F=7:G1=G:F1=F:Y=27:X=16:Y1=Y:X1=X
  180   B=40:S=0
  190   GOSUB380
  200   COLOUR2:COLOUR131::PRINTTAB(BX,BY)CHR
$228:COLOUR130
  210   COLOUR7:COLOUR128:PRINTTAB(4,2);B,;S:
COLOUR130
  220   COLOUR0:PRINTTAB(X1,Y1)"  "TAB(X1,Y1+
1)"  "TAB(X,Y)CHR$224;CHR$225;TAB(X,Y+1)CHR$2
26;CHR$227;TAB(G1,F1)" "TAB(G,F)CHR$229
  230   FORI=0TO200:NEXT
  240   IFY=BY OR Y+1=BY IFX=BX ORX+1=BX GOSU
B340
  250   IFF=BY AND G=BX GOSUB350
  260   Y1=Y:X1=X:G1=G:F1=F
  270   IFINKEY(-58) AND Y>7 IFFNAT(X,Y-1)<33
 AND FNAT(X+1,Y-1)<33 Y=Y1-1
  280   IFINKEY(-42) AND Y<27 IFFNAT(X,Y+2)<3
3 AND FNAT(X+1,Y+2)<33 Y=Y1+1
  290   IFINKEY(-26) AND X>2 IFFNAT(X-1,Y)<33
 AND FNAT(X-1,Y+1)<33 X=X1-1
  300   IFINKEY(-122) AND X<16 IFFNAT(X+2,Y)<
33 AND FNAT(X+2,Y+1)<33 X=X1+1
  310   F=F-(F<BY)+(F>BY):G=G-(G<BX)+(G>BX)
  320   IFFNAT(G,F)>32 F=F1+RND(3)-2:G=G1+RND
(3)-2:GOTO320
  330   GOTO220
  340   S=S+1
  350   B=B-1:COLOUR128:COLOUR7:PRINTTAB(4,2)
;B" ";S:COLOUR130
  360   IFS=10 GOTO420
  370   IFB=0 GOTO410
  380   BX=RND(16)+1:BY=RND(20)+6:IFFNAT(BX,B
Y)>32 GOTO380
  390   COLOUR131:COLOUR2:PRINTTAB(BX,BY)CHR$
228:COLOUR130
  400   RETURN
  410   MODE7:PRINT''''CHR$&81"Bad luck,you a
re not fast enough to"'CHR$&81"progress any f
urther in evolution.":GOTO960
  420   MODE7:PRINT''''CHR$&85"well done,you 
managed to eat the"'CHR$&85"bananas before yo
u starved and can"'CHR$&85"progress to the ne
xt stage.":GOTO960
  430   CLS:PRINT'''CHR$&86"The object of thi
s stage is to stop"'CHR$&86"other cavemen fro
m attacking your cave."''CHR$&85"Your cave is
 in the middle of 9 others"'CHR$&85"and from 
any of these can come rivals"
  440   PRINTCHR$&85"who are prepared to kill
 you in order"'CHR$&85"to steal your property
."
  450   PRINT'CHR$&83"You can spin round usin
g [ and ]."'CHR$&83"To throw a spear press sp
ace."''CHR$&82"You have successfully defended
 your"'CHR$&82"cave when 30 attacks have been
 made."'CHR$&82"You are given three lives to 
make your"
  460   PRINTCHR$&82"task easier."
  470   PRINTTAB(0,22)CHR$136;CHR$&81"       
Press space to start."
  480   REPEATUNTILGET=32:MODE2:COLOUR130:CLS
  490   RESTORE500:FORI=224TO232:VDU23,I:FORF
=0TO7:READG:VDUG:NEXTF,I
  500     DATA8,28,8,8,8,8,8,8,0,6,6,8,16,32,
64,0,0,0,2,255,2,0,0,0,0,67,32,16,8,6,6,0
  510     DATA8,8,8,8,8,8,28,8,0,2,4,8,16,96,
96,0,0,0,64,255,64,0,0,0,0,96,96,16,8,4,2,0
  520     DATA28,28,8,62,8,28,20,20
  530     FORI=-PI/2TO PI/2 STEPPI/9:A=I+PI/1
8
  540       VDU29,SIN(A)*400+607;COS(A)*400+5
11;:GCOL0,0:IFI>1.5 VDU29,607;415;:A=-PI
  550       MOVE0,0:FORG=A-(PI/2)TO A+(PI/2) 
STEPPI/8
  560         MOVE0,0:PLOT85,SIN(G)*60,COS(G)
*60
  570     NEXT:PLOT85,SIN(A+(PI/2))*60,COS(A+
(PI/2))*60:NEXT
  580     PRINTTAB(0,25)"LIVES:"CHR$232;CHR$2
32
  590     A$="":FORI=224TO231:A$=A$+CHR$I:NEX
T:A=1:S=0:C=0
  600     K=0
  610     COLOUR7:PRINTTAB(9,25)"ATTEMPTS ";C
:IFC=30 GOTO940
  620     ON RND(9)GOSUB 740,750,760,770,780,
790,800,810,820
  630     COLOUR7:PRINTTAB(9,18)MID$(A$,A,1)
  640     PRINTTAB(X,Y)" ":IFRND(5)=4 :X=X+SG
N(9-X)
  650     IFRND(5)=2 Y=Y+SGN(18-Y)
  660     COLOUR4:PRINTTAB(X,Y)CHR$232
  670     IFY=18 ANDX=9 GOTO910
  680     IFS=0 GOTO710
  690     PRINTTAB(G,F)" ":F=F+DY2:G=G+DX2:Z=
Z-1:IFZ>0 COLOUR7:PRINTTAB(G,F)B$ ELSE S=0
  700     IF(F=Y AND X=G) OR (F-DY2=Y AND G-D
X2=X) PRINTTAB(G,F)" ":FORW=7TO2STEP-1:COLOUR
W:PRINTTAB(X,Y)CHR$232:SOUND1,-15,RND(100),1:
FORI=0TO200:NEXT,:S=0:C=C+1:GOTO610
  710       A=A-(INKEY(-122) AND A<8)+7*(INKE
Y(-122) AND A=8)+(INKEY(-26) AND A>1)-7*(INKE
Y(-26) AND A=1)
  720       IFINKEY(-99) ANDS=0 B$=MID$(A$,A,
1):F=18:G=9:S=1:ON A GOSUB830,840,850,860,870
,880,890,900:Z=6
  730       GOTO630
  740       Y=13:X=4:RETURN
  750       Y=9:X=5:RETURN
  760       Y=6:X=6:RETURN
  770       Y=13:X=4:RETURN
  780       Y=4:X=9:RETURN
  790       Y=13:X=14:RETURN
  800       Y=9:X=13:RETURN
  810       Y=13:X=14:RETURN
  820       Y=6:X=12:RETURN
  830       DY2=-1:DX2=0:RETURN
  840       DY2=-1:DX2=1:RETURN
  850       DY2=0:DX2=1:RETURN
  860       DY2=0:DX2=0:RETURN
  870       DY2=0:DX2=0:RETURN
  880       DY2=0:DX2=-1:RETURN
  890       DY2=0:DX2=-1:RETURN
  900       DY2=-1:DX2=-1:RETURN
  910       PRINTTAB(G,F)" ":FORF=100TO80STEP
-1:SOUND1,-15,F,1:NEXT:K=K+1:PRINTTAB(K+5,25)
" "
  920       IFK=3 GOTO950
  930       S=0:GOTO610
  940       MODE7:PRINT''''CHR$&85"Well done!
 Defending your cave was not"'CHR$&85"easy,bu
t you did very well and can"'CHR$&85"evolve f
urther if you wish to.":GOTO960
  950       MODE7:PRINT''''CHR$&81"Bad luck,y
ou failed in your attempt to"'CHR$&81"defend 
your cave."
  960       PRINT'''CHR$&83"Options:-"
  970       PRINT'''CHR$&82"1"CHR$&83"Start t
he gorilla stage."'CHR$&82"2"CHR$&83"Start th
e caveman stage."'CHR$&82"3"CHR$&83"Load the 
6th stage."'CHR$&82"4"CHR$&83"Exit from the p
rogram."
  980       PRINTTAB(0,22)" Select option :";
  990       A=GET-48:VDUA+48:IFA<1 OR A>4 GOT
O980
 1000       FORI=0TO1000:NEXT
 1010       IFA=3 CHAIN""
 1020       IFA=4 END
 1030       CLS:ON A GOTO40,430
 1040       DEFFNAT(X,Y)
 1050       A%=135:VDU31,X,Y
 1060       A%=USR&FFF4 AND&FFFF
 1070       =A% DIV256