Minelay


Minelay is a maze game in which your hero runs about collecting 5 eggs and avoiding the deadly mines which are scattered randomly about the maze. A fiendish little 'minelayer' scuttles around the screen in hot pursuit. Contact with this persistent creature results in instant death. Here is the good news. A number of axes are dotted around the playing area which the player can pick up and carry around. Each axe can be used both to break through maze walls and also to fend off direct attacks by the minelayer.

    1 REM *** BBC VERSION ***
    2 REM *** MINELAY ***
    3  MODE1:VDU23,1,0;0;0;0;:CLS
    5  REM @ PAUL STANLEY
   10 GOSUB9000
   15  HS=0
   20  GOTO 6030
   50  SOUND 2,-12,53,4
   55  LI=3
   60 COLOUR2:VDU31,17,5,142,142:PRINTSPC(4);
"HI-SCORE ";HS
  100  VDU31,X1+4,Y1+5,32:COLOUR3:PRINTTAB(X+
4,Y+5)A$:Y1=Y:X1=X
  105 *FX15,1
  110  K$=INKEY$(10):X=X-(K$="P" AND X<29)+(K
$="I" AND X>1):Y=Y-(K$="Z" AND Y<21)+(K$="Q" 
AND Y>2)
  120  A=FNSC(X+4,Y+5):IF FNSC(X+4,Y+5)=32 TH
EN700
  122  IF A=141 THEN IF A$=CHR$(143) THEN GOT
O5000
  125  IF A=141 THEN Y=Y1:X=X1
  130  IF A=145THEN SOUND2,-12,47,1:SC=SC+10:
COLOUR2:VDU31,4,5:PRINT"SCORE ";SC:IFSC/500=I
NT(SC/500)THENVDU31,LI+16,5,142:FORG=1TO5:SOU
ND2,-12,47,1:NEXT:VDU31,16+LI,5,142:LI=LI+1
  140  IF A=146 THEN GOTO6000
  150  IFA=147 THEN SOUND1,-14,210,1:A$=CHR$(
143)
  700  VDU31,MX+4,MY+5,32:IF RND(1)>SK THEN C
OLOUR1:VDU31,MX1+4,MY1+5,146
  705  MY1=MY:MX1=MX
  710  MY=MY-.5*(MY<Y)+.5*(MY>Y):MX=MX-.5*(MX
<X)+.5*(MX>X)
  715  CC=FNSC(MX+4,MY+5):IF CC=142 OR CC=143
 THEN GOTO 6000
  720  COLOUR1:VDU31,MX+4,MY+5,144
  940  COLOUR2:IF RND(1)<.2 THEN VDU31,RND(27
)+5,RND(17)+7,145:COLOUR3:IF RND(1)>.9 THEN V
DU31,RND(27)+5,RND(17)+7,147
  999  GOTO100
 1000  END
 1010 DEFFNSC(X,Y):VDU31,X,Y:A%=135:C=USR(&FF
F4):C=C AND &FFFF:C=C DIV &100:=C
 5000  IF Y=1 OR Y=21 OR X=0 OR X=30 THEN GOT
O125
 5005  FOR F=180TO100STEP-10:SOUND1,-14,F,1:N
EXT
 5010  A$=CHR$(142)
 5030  GOTO 130
 5500  VDU31,16+LI,5,32,31,X+4,Y+5,32:Y=2:X=1
 5600  MY=RND(10)+10:MX=RND(17)+12:GOTO100
 6000  VDU31,MX+4,MY+5,32:MY=RND(10)+10:MX=RN
D(17)+12:MY1=MY:MX1=MX:IF A$=CHR$(143) THEN A
$=CHR$(142):FORF=100TO180STEP10:SOUND3,-14,F,
1:NEXT:GOTO700
 6005  VDU31,X1+4,Y1+5,32:FORF=1TO7:VDU31,X+4
,Y+5,32:SOUND2,-13,F*20,2:FORG=1TO200:NEXT:VD
U31,X+4,Y+5,142:FORG=1TO200:NEXT:NEXT
 6007  LI=LI-1:IFLI<>0 THEN GOTO5500
 6010  FORG=1TO5000:NEXT
 6020  CLS:COLOUR1:PRINTTAB(12,10)"G A M E  O
 V E R"
 6025  COLOUR3:PRINTTAB(14,13)"You scored ";S
C
 6026  IF SC>HS THEN HS=SC:PRINTTAB(4,15)" We
ll done. A new high-score!!":GOTO6030
 6027  PRINTTAB(5,17)"     The high-score is 
";HS
 6030  COLOUR2:VDU31,10,22:PRINT"1  FOR A HAR
D  GAME":VDU31,10,23:PRINT"2  FOR AN EASY GAM
E"
 6040  T$=GET$:IFT$<>"1"ANDT$<>"2"THEN6040
 6045  SK= -.7*(T$="1")-.85*(T$="2")
 6050  CLS
 7000 COLOUR3: FOR F=6TO26:VDU31,4,F,141,31,3
4,F,141:NEXT:FORF=5TO33:VDU31,F,6,141,31,F,26
,141:NEXT:FORG=1TO -7*(SK=.85)-14*(SK=.7):S=R
ND(27):F=S+RND(9):X=RND(8)*2+1:IFF>29THENF=29
 7030    FORY=S TOF:VDU31,Y+4,X+5,141:NEXT:S=
RND(16)+2:F=S+RND(9):X=RND(13)*2+2:IFF>20THEN
F=20
 7060    FORY=S TOF:VDU31,X+4,Y+5,141:NEXT:NE
XT:COLOUR2:FORF=1TO20
 7400    Y=RND(17)+2:X=RND(27)+1:IFFNSC(X+4,Y
+5)<>32THEN7400
 7420    VDU31,X+4,Y+5,145:NEXT:COLOUR1:FORF=
1TO10
 7510    Y=RND(17)+2:X=RND(27)+1:IFFNSC(X+4,Y
+5)<>32THEN7510 
 7540  VDU31,X+4,Y+5,146:NEXT:COLOUR3:FORF=1T
O5:VDU31,RND(27)+5,RND(17)+7,147:NEXT
 7800 Y=2:X=1:Y1=Y:X1=X:A$=CHR$(142):MY=RND(1
0)+10:MX=RND(17)+12:MY1=MY:MX1=MX
 7850 COLOUR2:SC=0:VDU31,4,5:PRINT"SCORE ";SC
 7999  GOTO50
 9000 VDU23,141,24,36,66,153,153,66,36,24
 9002 VDU23,142,28,28,63,62,8,28,20,54
 9004 VDU23,143,220,220,73,126,72,92,20,54
 9006 VDU23,144,195,36,24,36,126,90,129,0
 9008 VDU23,145,0,0,0,12,62,126,62,12
 9010 VDU23,146,0,0,8,73,42,28,62,127
 9012 VDU23,147,4,14,6,12,24,48,96,0
 9014 VDU23,148,192,32,16,32,112,112,128,0,23
,149,3,4,8,4,14,14,1,0
 9015 VDU19,2,0,0,0,0:COLOUR2:VDU31,0,5
 9016  VDU32,32,144,148,32,149,144,32,144,144
,144,32,144,148,32,32,144,32,144,144,144,144,
32,144,32,32,32,32,144,144,144,144,32,144,32,
32,32,144
 9017 VDU31,0,6,32,32,144,149,32,148,144,32,3
2,144,32,32,144,149,32,32,144,32,144,32,32,32
,32,144,32,32,32,32,144,32,32,144,32,144,32,3
2,32,144
 9018 VDU31,0,7,32,32,144,32,144,32,144,32,32
,144,32,32,144,32,144,32,144,32,144,144,144,1
44,32,144,32,32,32,32,144,144,144,144,32,32,1
44,144,144
 9019 VDU31,0,8,32,32,144,32,32,32,144,32,32,
144,32,32,144,32,32,148,144,32,144,32,32,32,3
2,144,32,32,32,32,144,32,32,144,32,32,32,144
 9020 VDU31,0,9,32,32,144,32,32,32,144,32,144
,144,144,32,144,32,32,149,144,32,144,144,144,
144,32,144,144,144,144,32,144,32,32,144,32,32
,32,144
 9021  COLOUR1
 9022  FORY=5TO9:FORX=0TO39:CC=FNSC(X,Y):IF C
C<>32 THEN VDUCC
 9024  SOUND1,-12,(Y-3)*(X+10),1.2:NEXT:NEXT:
VDU20
 9647  VDU19,3,6,0,0,0
 9650  COLOUR3:PRINTTAB(4,12)"Move about the 
maze picking up",TAB(4,13)"golden eggs, avoid
ing the mines",TAB(4,14)"and also the mine-la
yer."
 9700  PRINTTAB(4,16)"If you pick up an axe y
ou can",TAB(4,17)"destroy the maze walls,",TA
B(4,18)"and the mine-layer."
 9750  PRINTTAB(4,20)"You begin with 3 lives,
 but an",TAB(4,21)"extra life is given every 
500 ",TAB(4,22)"points."
 9800 COLOUR1:PRINTTAB(4,24)"Q.....UP        
  Z.....DOWN",TAB(4,25)"I.....LEFT        P..
...RIGHT"
 9900  COLOUR2:PRINTTAB(6,28)"Press any key t
o start.....":A$=""
 9910  G=GET:CLS
 9999 RETURN