|
MARTIANMR21:01 22-January-2013 |
|
|
10 REM CRUSHER
30 FOR N=46856 TO 46919:READ KY%OKE N,KY%:NEXT
40 DATA0,8,20,34,42,34,34,28
50 DATA62,28,8,20,34,42,54,34
60 DATA8,42,54,62,62,62,28,8
70 DATA63,33,51,45,45,51,33,63
80 DATA63,33,18,12,12,18,33,63
90 DATA1,1,1,1,1,1,1,1
100 DATA62,60,24,8,0,0,0,0
110 DATA34,34,34,34,34,62,8,8
120 CLSAPER0:INK5INGRINTCHR$(20)OKE618,10IM FU$(500)%=5
130 PLOT9,9,"C O U N T - D O W N"LOT9,10,"C O U N T - D O W N"
140 FOR N=9 TO14LOT8,N,10:NEXT
150 FOR N=500 TO 0 STEP-1
160 N$=STR$(N):N$=RIGHT$(N$,LEN(N$)-1)
170 FOR A=LEN(N$) TO 3:N$=" "+N$:NEXT
180 FU$(N)=N$LOT17,13,N$LOT17,14,N$
190 NEXTLAY1,0,0,0ING
200 REM TITLE PAGE
210 CLSAPER0:INK2:SC%=0:LI%=4D%=2
220 FOR N=48000 TO 48039OKE N,16:NEXT
230 PLOT9,1,"T H E C R U S H E R"LOT9,2,"T H E C R U S H E R"
240 PLOT7,1,6LOT6,1,10LOT6,2,10
250 PLOT9,5,"KEY FUNCTION"LOT7,5,5
260 PLOT9,7,"1 MOVE SHIP LEFT"LOT7,7,6
270 PLOT9,8,"2 MOVE SHIP RIGHT"LOT7,8,6
280 PLOT9,9,"= BURN GRABBER/DOCK"LOT7,9,6
290 PLOT9,10,"\ FIRE LASER"LOT7,10,6
300 PLOT2,12,"SHIP a POD c LIFT @ REFUEL BAY b"LOT1,12,5
310 PLOT16,13,"GRABBER h"LOT10,13,5
320 PLOT2,15,"YOU HAVE ARRIVED AT A SPACE-PORT TO"
330 PLOT2,16,"REFUEL. HOWEVER THE PORT HAS BEEN"
340 PLOT2,17,"INVADED BY ALIEN PODS. BEFORE REFUEL-"
350 PLOT2,18,"ING YOU MUST DESTROY THE PODS ON EACH"
360 PLOT2,19,"LEVEL. A LIFT WILL APPEAR AND TAKE YOU"
370 PLOT2,20,"TO THE NEXT LEVEL. ON THE LAST LEVEL"
380 PLOT2,21,"YOU MUST DOCK WITH THE FUEL BAY."
390 PLOT2,22,"BEWARE - IF YOUR FUEL RUNS OUT OR THE"
400 PLOT2,23,"GRABBER GETS YOU YOUR SHIP WILL BE"
410 PLOT2,24,"CRUSHED FOR SCRAP!!"
420 PLOT3,26,"PRESS SPACE-BAR TO PLAY, ESC TO QUIT"LOT2,26,3LOT1,26,12
430 GET SC$
440 IF SC$=CHR$(27) THEN END ELSE IF SC$<>" " THEN 430
500 REM DRAWS PICTURE
510 CLS:IF P%=1 THEN P%=2 ELSE IF P%=2 THEN P%=5 ELSE IF P%=5 THENP%=6ELSEP%=1
520 PAPER P%
530 FOR N=0 TO 22
540 IF N=5 OR N=11 OR N=17 THEN PLOT2,N,P%+1 ELSE PLOT0,N,16LOT38,N,P%+16
550 NEXT
560 FOR N=49000 TO 49120 STEP40OKEN,20OKEN+1,3:NEXT
570 PLOT2,24,"SCORE SHIPS FUEL HI-SCORE"
580 PLOT2,26,"0 4"LOT30,26,RIGHT$(STR$(HS%),LEN(STR$(HS%))-1)
590 PLOT19,25,10LOT19,26,10LOT27,25,8LOT27,26,8
700 REM SET UP PODS
710 FU%=500:SX%=20:SY%=21:LY%=22R%=PD%
720 IF RND(1)>.5 THEN GX%=2 ELSE GX%=35
730 FOR N=48000 TO 48039OKEN,P%+16:NEXT
740 PLOT 21,25,FU$(FU%)LOT21,26,FU$(FU%)
750 FOR N=0 TO 18 STEP 6
760 FOR A=N TO N+4LOT3,A," ":NEXT
770 PLOT2,N,4LOT2,N+1,5LOT2,N+2,3LOT2,N+3,2LOT2,N+4,1
780 FOR A=1 TO PD%
790 PP%=INT(RND(1)*32+3)
800 IF SCRN(PP%+1,N)=124 THEN 790 ELSE PLOT PP%+1,N,"|"LOTPP%+1,N+1,"c"
810 SOUND1,(N+PP%)*2,7:WAIT 10:SOUND1,(N+PP%)*4,7:WAIT5
820 NEXT
830 NEXT
840 SOUND1,0,0LOTSX%+1,SY%,"a"
1000 REM READ KEYS
1010 KY%=PEEK(520)
1020 IF KY%=191 THEN 1310 ELSE IF KY%=179 THEN2010
1030 IF KY%=168 AND SX%>3 THEN SX%=SX%-1:GOTO 1050
1040 IF KY%=178 AND SX%<34 THEN SX%=SX%+1 ELSE GOTO 1060
1050 PLOTSX%,SY%," a "
1060 FU%=FU%-1LOT21,25,FU$(FU%)LOT21,26,FU$(FU%):IF FU%=0 THEN 3010
1070 IF LX%>0 THEN 1110
1080 IF GX%=SX% THEN 3010 ELSE GX%=GX%+SGN(SX%-GX%)LOTGX%,LY%," h "
1090 GOTO1010
1100 REM LIFT SHIP TO NEXT LEVEL
1110 IF SX%<>LX% THEN 1010
1120 FOR N=SY% TO SY%-6 STEP-1
1130 PLOTSX%+1,N,"a"LOTSX%+1,N+1,"e":SOUND1,N*100,7:WAIT20
1140 NEXT
1150 WAIT50
1160 FOR N=SY%-5 TO SY%+1
1170 PLOTSX%+1,N," ":SOUND1,N*10,7:WAIT20
1180 NEXT
1190 SOUND1,0,0:SY%=SY%-6:LX%=0R%=PD%:LY%=LY%-6
1200 IF RND(1)>.5 THEN GX%=2 ELSE GX%=35
1210 GOTO1010
1300 REM BURN GRABBER
1310 SOUND1,10000,10LOT2,LY%,3LOTSX%+1,LY%,"g"
1320 IF FU%>5 THEN FU%=FU%-5 ELSE FU%=1
1330 IF SX%<>GX% THEN 1350
1340 IF RND(1)>.5 THEN GX%=2 ELSE GX%=35
1350 PLOTSX%+1,LY%," "LOT2,LY%,1:SOUND1,0,0
1360 GOTO1060
2000 REM LASER FIRE
2010 KY%=SCRN(SX%+1,SY%-2)
2020 SOUND1,100,7LOTSX%+1,SY%-1,"|"LOTSX%+1,SY%-2,"|":SOUND1,200,7
2030 PLOTSX%+1,SY%-1," "LOTSX%+1,SY%-2," ":SOUND1,0,0
2040 IF KY%<99 THEN 1060 ELSE PR%=PR%-1:SC%=SC%+10
2050 SC$=STR$(SC%):SC$=RIGHT$(SC$,LEN(SC$)-1)LOT2,26,SC$
2060 IF SC%>HS% THENHS%=SC%LOT30,26,SC$
2070 IF PR%>0 THEN 1060 ELSE PLOTGX%+1,LY%," "
2080 IF SY%>3 THEN LX%=INT(RND(1)*32+3)LOTLX%+1,LY%,"e":GOTO1060
2100 REM DOCKING SEQUENCE
2110 TX$=" DOCK TO REFUEL "
2120 FOR N=9 TO 30OKE48000+N,ASC(MID$(TX$,N-8,1))+128:NEXTOKE48001,12
2130 DP%=1:IF INT(SX%/2)*2=SX% THEN DX%=18 ELSE DX%=19
2140 PLAY1,0,4,500LOTDX%+1,0,"b":IF SX%<34 THEN CP%=1 ELSE CP%=-1
2150 KY%=PEEK(520)
2160 IF KY%=191 THEN 2300
2170 IF KY%=168 THEN CP%=-1 ELSE IF KY%=178 THEN CP%=1
2180 IF SX%+CP%>3 AND SX%+CP%<34 THEN SX%=SX%+CP%LOTSX%,3," a "
2190 IF DX%=20 THEN DP%=-1 ELSE IF DX%=18 THEN DP%=1
2200 DX%=DX%+DP%LOTDX%,0," b "
2210 FU%=FU%-1LOT21,25,FU$(FU%)LOT21,26,FU$(FU%):IF FU%=0 THEN3010
2220 GOTO2150
2300 PLAY0,1,0,0:SOUND4,500,10LOTSX%+1,4,"g"LOT2,4,3
2310 IF SX%=DX% THEN A=2 ELSE A=1
2320 FOR N=3 TO A STEP-1
2330 WAIT100LOTSX%+1,N+1," "LOTSX%+1,N,"g"LOT2,N,3LOTSX%+1,N-1,"a"
2340 NEXT
2350 PLAY1,0,0,0:SOUND4,0,0:IF A=2 THEN 2400
2360 LI%=LI%-1LOT13,26,STR$(LI%)
2370 EXPLODE:GOTO2500
2400 PING:WAIT50
2410 FOR N=FU% TO 500LOT21,25,FU$(N)LOT21,26,FU$(N):SOUND1,600-N,7:NEXT
2420 SOUND1,0,0ING:IF PD%<30 THEN PD%=PD%+1
2500 WAIT300LAY1,0,0,0:IF LI%=0 THEN 200ELSE 700
3000 REM THE CRUSHER
3010 LI%=LI%-1
3020 FOR N=1 TO 4:SOUND1,300,7:WAIT 20:SOUND1,500,7:WAIT10:NEXT:SOUND1,0,0
3030 FOR N=SY%-1 TO SY%+1LOT2,N,4LOT3,N,"f":NEXT
3040 PLAY0,1,0,0:SOUND4,100,10
3050 FOR N=38 TO 5 STEP-1
3060 IF SCRN(N,SY%)=97 THEN PLOTN-1,SY%,"ad" ELSE PLOT N,SY%,"d"
3070 WAIT10:NEXT
3080 SOUND4,0,0:WAIT100:SOUND4,100,10
3090 FOR N=5 TO 16LOTN,SY%," ":WAIT20:NEXT:SOUND4,0,0
3100 WAIT INT(RND(1)*300+100)
3110 FOR N=16 TO 4 STEP-1LOTN,SY%,"d":NEXT
3120 EXPLODELOT14,26,RIGHT$(STR$(LI%),1):WAIT300
3130 PLAY1,0,0,0:SOUND4,0,0:IF LI%=0 THEN 200 ELSE 700
|
|
|