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