Giant Rats   (Model A)


The object of Giant Rats is to direct a man through a maze to reach the girl, whilst being pursued by a killer rat. You have a displayed time limit in which to move before the girl mutates - and if you are unlucky she will unpredictably change places with the rat! If the rat should reach the girl first, she will disappear altogether. At the beginning of the game you are shown the positions of up to four randomly placed mines which you must try to memorise since they will remain invisible for the remainder of the game.

    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