10 REM Bang wollop
20 REM ************* 30 REM 40 REM Mark edmonds 1986 50 REM 60 MEMORY HIMEM-12 70 COPYCHAR=HIMEM+1 80 FOR ADDRESS=COPYCHAR TO COPYCHAR+10 90 READ BYTE:POKE ADDRESS,BYTE 100 NEXT ADDRESS 110 DATA &CD,&60,&BB,&DD,&6E,&00,&DD,&66,&01,&77,&C9 120 RESTORE 130:FOR Q=1 TO 10:READ IK:P(Q)=IK:NEXT 130 DATA 0,13,1,3,2,10,9,4,11,6 140 GOSUB 1290 150 REM 160 REM * Instructions * 170 REM 180 BORDER 0:INK 0,0:INK 1,25:INK 2,17:INK 3,19 190 MODE 1:PAPER 0:CLS:PEN 1:LOCATE 11,1:PRINT"* Bang wollop *" 200 PEN 2:FOR d=1 TO 39:LOCATE d,5:PRINT" ";CHR$(250):FOR n=1 TO 70:NEXT n:NEXT d:LOCATE 40,5:PRINT" " 210 PEN 3:LOCATE 1,6:PRINT" A game of skill and anticipation..." 220 PEN 1:PRINT:PRINT" The object of the game is to race around the many passages of the track collecting points as you go whilst avoiding the suicidal robot car." 230 PRINT:PRINT" There is one catch...you can only change lanes at one of the four small gaps in the circuit!" 240 PRINT:PRINT" The robot car can only move one lane at a time.... you can move up to five in one gap.BEWARE...the robot drives in the opposite direction and always changes into the lane nearest to you !!" 250 PEN 2:LOCATE 12,24:PRINT"Press any key" 260 IF INKEY$="" THEN 260 270 CLS:PEN 1:LOCATE 16,1:PRINT"Keys":LOCATE 16,2:PRINT"====" 280 PEN 2:LOCATE 9,4:PRINT"A - Move up one lane" 290 LOCATE 9,6:PRINT"Z - Move down one lane" 300 LOCATE 9,8:PRINT"N - Move left one lane" 310 LOCATE 9,10:PRINT"M - Move right one lane" 320 PEN 2:LOCATE 12,24:PRINT"Press any key" 330 IF INKEY$="" THEN 330 340 REM 350 REM * Set up * 360 REM 370 SC=0:DOTS=0:SH=1:LI=3 380 REM 390 REM * Draw screen * 400 REM 410 MODE 1:INK 0,p(sh) 420 PAPER 0:CLS:BORDER 7:PEN 1 430 PRINT"+--------------------------------------+"; 440 PRINT"—................ ................—"; 450 PRINT"—.+-------------- --------------+.—"; 460 PRINT"—.—.............. ..............—.—"; 470 PRINT"—.—.+------------ ------------+.—.—"; 480 PRINT"—.—.—............ ............—.—.—"; 490 PRINT"—.—.—.+---------- ----------+.—.—.—"; 500 PRINT"—.—.—.—.......... ..........—.—.—.—"; 510 PRINT"—.—.—.—.+-------- --------+.—.—.—.—"; 520 PRINT"—.—.—.—.— —.—.—.—.—"; 530 PRINT"— +------------------+ —"; 540 PRINT"— — — —"; 550 PRINT"— — — —"; 560 PRINT"— — — —"; 570 PRINT"— +------------------+ —"; 580 PRINT"—.—.—.—.— —.—.—.—.—"; 590 PRINT"—.—.—.—.+-------- --------+.—.—.—.—"; 600 PRINT"—.—.—.—.......... ..........—.—.—.—"; 610 PRINT"—.—.—.+---------- ----------+.—.—.—"; 620 PRINT"—.—.—............ ............—.—.—"; 630 PRINT"—.—.+------------ ------------+.—.—"; 640 PRINT"—.—.............. ..............—.—"; 650 PRINT"—.+-------------- --------------+.—"; 660 PRINT"—................ ................—"; 670 PRINT"+--------------------------------------+"; 680 LOCATE 17,12:PEN 2:PRINT"Score ";SC 690 LOCATE 17,13:PEN 3:PRINT"Sheet ";SH 700 LOCATE 17,14:PEN 1:PRINT"Lives ";LI 710 REM 720 REM * Tune * 730 REM 740 PEN 2:LOCATE 21,24:PRINT CHR$(248) 750 PEN 3:LOCATE 21,10:PRINT CHR$(244) 760 FOR M=1 TO 3 770 SOUND 7,239,10 780 FOR N=1 TO 700:NEXT N 790 NEXT M 800 SOUND 7,119,100 810 LOCATE 21,10:PRINT " " 820 REM 830 REM * Main loop * 840 REM 850 X=21:Y=24:A=21:B=10 860 L=5:K=1 870 Z=248:C=244:A%=0:B%=0 880 LOCATE X,Y:CALL COPYCHAR,àB% 890 LOCATE A,B:CALL COPYCHAR,àA% 900 PEN 2:LOCATE X,Y:PRINT CHR$(Z) 910 PEN 3:LOCATE A,B:PRINT CHR$(C) 920 D=A:E=B:V=X:W=Y 930 IF b%=46 THEN dots=dots+1:SOUND 7,119,3 940 IF (x=a OR x=a+1 OR x=a-1) AND (y=b OR y=b+1 OR y=b-1) THEN GOTO 1180 950 IF z=248 OR z=250 THEN x=x-(249-z) ELSE y=y-(250-z) 960 IF c=244 OR c=246 THEN a=a-(245-c) ELSE b=b+(246-c) 970 i$=UPPER$(INKEY$) 980 IF I$="N" THEN GOTO 1390 990 IF I$="M" THEN GOTO 1420 1000 IF I$="A" THEN GOTO 1450 1010 IF I$="Z" THEN GOTO 1480 1020 IF b=14 AND a>30 AND a<38 AND k<l THEN k=k+1:a=a+2 1030 IF b=14 AND a>32 AND a<40 AND k>l THEN k=k-1:a=a-2 1040 IF a=19 AND b>15 AND b<23 AND k<l THEN k=k+1:b=b+2 1050 IF a=19 AND b>17 AND b<25 AND k>l THEN k=k-1:b=b-2 1060 IF b=12 AND a>3 AND a<11 AND k<l THEN k=k+1:a=a-2 1070 IF b=12 AND a>1 AND a<9 AND k>l THEN k=k-1:a=a+2 1080 IF a=22 AND b>3 AND b<11 AND k<l THEN k=k+1:b=b-2 1090 IF a=22 AND b>1 AND b<9 AND k>l THEN k=k-1:b=b+2 1100 IF (x=y AND x<11) OR (x+(25-y)=40 AND x>29) OR (x+y=41 AND x>29) OR (x+y=26 AND x<11) THEN z=z+1 1110 IF (a=b AND a<11) OR (a+(25-b)=40 AND a>29) OR (a+b=41 AND a>29) OR (a+b=26 AND a<11) THEN c=c+1 1120 IF c=248 THEN c=244 1130 IF z=252 THEN z=248 1140 IF DOTS=288 THEN GOTO 1510 1150 PEN 1:LOCATE D,E:PRINT CHR$(A%):LOCATE V,W:PRINT" " 1160 GOTO 880 1170 REM 1180 REM * Crash * 1190 REM 1200 PEN 3:LOCATE x-1,y-1:PRINT"***":LOCATE x-1,y:PRINT"*#*":LOCATE x-1,y+1:PRINT"***" 1210 ENV 1,100,3,1:SOUND 1,200,100,1,1,1,5 1220 PS=SC:SC=SC+DOTS 1230 PEN 2:FOR t=ps TO sc:LOCATE 23,12:PRINT t:SOUND 7,119,1:NEXT t 1240 LI=LI-1:LOCATE 17,14:PEN 1:PRINT"Lives ";LI 1250 FOR WT=1 TO 1000:NEXT WT 1260 IF LI=0 THEN GOTO 1560 1270 dots=0 1280 GOTO 380 1290 SYMBOL 244,&7,&F7,&62,&FF,&FF,&62,&F7,&7 1300 SYMBOL 244,&7,&F7,&62,&FF,&FF,&62,&F7,&7 1310 SYMBOL 245,&DB,&FF,&DB,&18,&5A,&7E,&7E,&5A 1320 SYMBOL 246,&E0,&EF,&46,&FF,&FF,&46,&EF,&E0 1330 SYMBOL 247,&5A,&7E,&7E,&5A,&18,&DB,&FF,&DB 1340 SYMBOL 248,&7,&F7,&62,&FF,&FF,&62,&F7,&7 1350 SYMBOL 249,&5A,&7E,&7E,&5A,&18,&DB,&FF,&DB 1360 SYMBOL 250,&E0,&EF,&46,&FF,&FF,&46,&EF,&E0 1370 SYMBOL 251,&DB,&FF,&DB,&18,&5A,&7E,&7E,&5A 1380 RETURN 1390 IF x>3 AND x<11 AND y>10 AND y<16 THEN x=x-2:l=l+1 1400 IF x>32 AND y>10 AND y<16 THEN x=x-2:l=l-1 1410 GOTO 1020 1420 IF x>1 AND x<10 AND y>10 AND y<16 THEN x=x+2:l=l-1 1430 IF x>30 AND x<38 AND y>10 AND y<16 THEN x=x+2:l=l+1 1440 GOTO 1020 1450 IF y>3 AND y<11 AND x>17 AND x<24 THEN y=y-2:l=l+1 1460 IF y>17 AND x>17 AND x<24 THEN y=y-2:l=l-1 1470 GOTO 1020 1480 IF y>1 AND y<9 AND x>17 AND x<24 THEN y=y+2:l=l-1 1490 IF y>15 AND y<23 AND x>17 AND x<24 THEN y=y+2:l=l+1 1500 GOTO 1020 1510 ps=sc:sc=sc+dots 1520 PEN 2:FOR t=ps TO sc:LOCATE 23,12:PRINT t:SOUND 7,119,1:NEXT t 1530 SH=SH+1:DOTS=0 1540 IF SH=11 THEN SH=1 1550 GOTO 380 1560 CLS:PEN 2:LOCATE 16,13:PRINT" GAME OVER" 1570 LOCATE 16,15:PEN 3:PRINT"SCORE -";SC 1580 LOCATE 9,24:PEN 1:PRINT"PRESS A KEY TO PLAY AGAIN" 1590 IF INKEY$="" THEN 1590 1600 GOTO 340 1610 FOR WT=1 TO 1000:NEXT WT |