5 REM **GIANT RATS**BBC VERSION BY I.THO MAS FROM ORIGINAL @STANLEY 10 DIMA(4),B(4) 20 HS=0 30 *FX11 40 GOSUB850 50 MODE7 60 GOSUB740 70 MODE5 80 VDU23;11,0;0;0;0 90 VDU19,3,2;0; 100 SC=0:RA=0 110 LI=5 120 FORF=0TO18:COLOUR3:PRINTTAB(F,0)CHR$230 ;TAB(F,28)CHR$230:NEXT:FORF=1TO28:COLOUR3:PRI NTTAB(0,F)CHR$230;TAB(18,F)CHR$230:NEXT 130 GOSUB540 140 FORI=1TO29:PRINTTAB(RND(16)+1,RND(26)+1 )CHR$230:NEXT 150 SC=SC-1:Y=1:X=1:F=16:G=16:A$=CHR$226 160 PRINTTAB(15,30)"LI:";LI;TAB(3,30)"SCORE :0" 170 B$=CHR$224+CHR$225+STRING$(28," ") 180 GOSUB450 190 FG=0 200 IFFG=0 I=1 ELSE I=2 210 C=C-1:PRINTTAB(0,30);C" ":IFC=0 GOTO630 220 IFRND(1)>.97 GOSUB500 230 PRINTTAB(X,Y)" " 240 IFINKEY(-67) ANDFNAT(X+1,Y)<>134 X=X+1 250 IFINKEY(-98) ANDFNAT(X-1,Y)<>134 X=X-1 260 IFINKEY(-73) ANDFNAT(X,Y-1)<>134 Y=Y-1 270 IFINKEY(-105) ANDFNAT(X,Y+1)<>134 Y=Y+1 280 *FX15 290 IFFNAT(X,Y)=135 GOSUB450 300 IF(X=B(1) AND Y=A(1)) OR(X=B(2) AND Y=A (2)) OR(X=B(3) AND Y=A(3)) OR(X=B(4) AND Y=A( 4)) GOTO580 310 COLOUR2:PRINTTAB(X,Y)MID$(B$,I,1):GOSUB 350 320 IFRA=1 GOTO600 330 IFFG=0 FG=1 ELSE FG=0 340 GOTO200 350 F1=F:G1=G 360 IFF<Y A$=CHR$229:F=F+.5 370 IFF>Y A$=CHR$228:F=F-.5 380 IFG<X A$=CHR$227:G=G+.5 390 IFG>X A$=CHR$226:G=G-.5 400 IFINT(G)=W AND INT(F)=Q F=F1:G=G1 410 COLOUR1:PRINTTAB(G1,F1)" ";TAB(G,F)A$ 420 IFFNAT(X,Y)=131 RA=1:RETURN 430 IFRND(3)=2 COLOUR3:A=RND(15)+1:B=RND(20 )+1:IFA<>W ANDB<>Q PRINTTAB(A,B)CHR$230 440 RETURN 450 SC=SC+1:PRINTTAB(9,30);SC 460 FORL=1TO5:SOUND1,-15,L*5,1:NEXT 470 C=99 480 Q=RND(25)+1:W=RND(16)+1:COLOUR1:PRINTTA B(W,Q)CHR$231 490 RETURN 500 PRINTTAB(W,Q)" ":L=Q:M=W:L1=F:M1=G:F=1: G=M:Q=L1:W=M1 510 COLOUR1:PRINTTAB(W,Q)CHR$231 520 T=1 530 RETURN 540 FORI=1TO4:A(I)=RND(27):B(I)=RND(17):NEX T 550 COLOUR129:FORI=7 TO0 STEP-1:FORL=1TO4:P RINTTAB(B(L),A(L))" ":SOUND1,-15,I,1:NEXT, 560 COLOUR128:FORI=7 TO0 STEP-1:FORL=1TO4:P RINTTAB(B(L),A(L))" ":SOUND1,-15,I,1:NEXT, 570 RETURN 580 FORL=I TO3:FORI=7 TO0 STEP-1:PRINTTAB(X ,Y)CHR$224:SOUND1,-15,I*8,1:NEXT, 590 GOTO640 600 FORL=1 TO3:FORI=7 TO0 STEP-1:PRINTTAB(X ,Y)CHR$229:SOUND1,-15,I*8,1:NEXT, 610 RA=0 620 GOTO640 630 FORL=1TO15:FORI=1TO3:COLOUR2:PRINTTAB(W ,Q)CHR$226:NEXT, 640 PRINTTAB(X,Y)" "TAB(G,F)" "TAB(W,Q)" " 650 LI=LI-1:IFLI>0 SOUND1,-15,53,3:GOTO150 660 COLOUR7 670 CLS:FORF=0TO20:SOUND1,-15,53+2*F,2:NEXT :*FX15 680 PRINT'''"You scored ";SC" points." 690 IFSC>HS HS=SC:PRINT''"Well done! a new high score!" 700 PRINT'''"The high score is ";HS 710 PRINT'''"Press any key to play again " 720 X=GET 730 CLS:GOTO100 740 PRINTCHR$136;CHR$141;CHR$129"M"CHR$130" U"CHR$131"T"CHR$132"A"CHR$133"N"CHR$134"T"CHR $129" R"CHR$130"A"CHR$131"T"CHR$132"S" 750 PRINTCHR$136;CHR$141;CHR$129"M"CHR$130" U"CHR$131"T"CHR$132"A"CHR$133"N"CHR$134"T"CHR $129" R"CHR$130"A"CHR$131"T"CHR$132"S" 760 FORY=0TO20 770 SOUND1,-15,RND(40),2 780 NEXT 790 PRINT''"The giant rat is out to get you ! You must try and reach the girl before s he mutates (a timer at the bottom of the s creen counts this down)." 800 PRINT'"However she might be a mutant he rself and change places with the rat unpredictably.Also she might disappear to tally (if she meets the rat,she will)." 810 PRINT'''"Press any key...":X=GET:CLS 820 PRINT'"And that's not all! When you sta rt,up tofour mines will be shown in random positions.These positions must be noted fo r if you land on one,you will be destroy ed!" 830 PRINT'"Move with Z left X right : up / down" 840 PRINT'''"Press any key to start.":X=GET :CLS:RETURN 850 VDU23,224,28,93,73,62,8,28,34,65 860 VDU23,225,28,28,8,127,8,28,20,20 870 VDU23,226,7,1,33,57,93,25,36,108 880 VDU23,227,240,128,132,156,186,255,36,54 890 VDU23,228,8,28,62,28,28,63,61,7 900 VDU23,229,15,57,255,124,254,84,56,16 910 VDU23,230,255,129,189,165,165,189,129,2 55 920 VDU23,231,28,28,73,62,28,62,20,54 930 RETURN 940 DEFFNAT(X%,Y%) 950 VDU31,X%,Y% 960 A%=135:A%=USR&FFF4 AND&FFFF 970 =A% DIV256