'=========================================================================== ' Subject: EXTREME VELOCITY Date: 12-21-95 (00:00) ' Author: Dave Cote Code: QB, QBasic, PDS ' Origin: www.qbasic.com Packet: GAMES.ABC '=========================================================================== 10 REM EXTREME VELOCITY, DAVE COTE, DEC. 21, 1995 20 REM THIS IS A RACING GAME THAT HAS 4 CARS (AND ONE SECRET CAR) AND A TRACK 30 REM ON EVERY PLANET (INCLUDING PLANET-X). EACH CAR HAS DIFFERENT STRONG AND 40 REM WEAK POINTS WITH EACH TRACK GETTING HARDER THAN THE LAST. YOU ARE GIVEN 50 REM A FINISHING POSITION BUT IT IS BASED ON TIME, SKILL LEVEL, AND TRACK. 60 REM ALL VARIABLES ARE DECLARED NOW SINCE MOST SUBS INCLUDING ALL TRACKS DO 70 REM NOT HAVE ANY VARIABLES AT ALL AND MANY VARIABLES ARE USED FOR MORE THAN 80 REM ONE APPLICATION. THE ARRAYS TO HOLD PICTURES ARE USED WITH THE GET AND 90 REM PUT GRAPHICS COMMANDS. YOU WILL NOT ACTUALLY SEE A VALUE HELD UNDER 100 REM EACH AREA OF THEM BUT GET IS KIND OF LIKE TAKING A PICTURE OF GRAPHICS 110 REM AND PUT PLACES THE PICTURE WHEREVER YOU WANT IT. THAT IS MUCH FASTER 120 REM THAN RE-DRAWING THE PICTURE EVERY TIME AND THAT IS HOW I GOT THE HIGHER 130 REM FRAME RATES THAN REGULAR ANIMATION 140 REM ARO$ = PICTURE OF ARROW ON TRACK 150 REM LAP(3) = 4 CHECKPOINTS ON TRACK 160 REM DR(300),DL(300),DU(300),DD(300) = AN ARRAY TO HOLD A PICTURE OF THE SELECTED CAR FACEING RIGHT, LEFT, UP, AND DOWN RESPECTIVELY 170 REM REDY(2000) = AN ARRAY TO HOLD A PICTURE OF THE BOX WITH TRACK NAME 180 REM SMOK(100) = AN ARRAY TO HOLD A PICTURE OF THE SMOKE TRAILS 190 REM EXPL(300) = AN ARRAY TO HOLD A PICTURE OF A FIREWALL EXPLOSION 200 REM SQU(1000) = AN ARRAY TO HOLD A PICTURE OF THE CAR SELECTION SCREEN BOX 210 REM Y(640) = DRIPPING LIQUID IN INSTRUCTIONS 220 REM C(640) = SPEED OF EACH DOT IN Y(640) 230 REM L = GENERAL LOOP COUNTER 240 REM COL = COLOR OF DRAWN ITEM 250 REM SND$ = DETERMINES IF SOUND IS 'OFF' OR 'ON' 260 REM SMOK$ = DETERMINES IF SMOKE TRAILS ARE 'OFF' OR 'ON' 270 REM SKIL = CURRENT SKILL LEVEL 280 REM LAPS = NUMBER OF LAPS ON EACH TRACK 290 REM DMG = CAR DAMAGE 300 REM CAR$ = NAME OF CAR 310 REM TRAK = CURRENT TRACK NUMBER 320 REM TRAK$ = CURRENT TRACK NAME 330 REM X,X2 = HORIZONTAL CO-ORDINATES OF GRAPHICS 340 REM Y,Y2 = VERTICAL CO-ORDINATES OF GRAPHICS 350 REM Z = MODIFIES Y IF NEEDED 360 REM W = MODIFIES Z IF NEEDED 370 REM KBD$ = CURRENT KEYBOARD INPUT FROM INKEY$ 380 REM HIDE$ = SECERET CODE FOR HIDEN CAR 390 REM ACC = SELECTED CAR'S ACCELERATION 400 REM CRN = SELECTED CAR'S CORNERING 410 REM SPD = SELECTED CAR'S TOP SPEED 420 REM D$ = DIRECTION OF CAR 430 REM X$ = MEMORY OF HORIZONTAL SMOKE TRAIL LOCATION 440 REM Y$ = MEMORY OF VERTICAL SMOKE TRAIL LOCATION 450 REM A = HORIZONTAL MOMENTUM 460 REM B = VERTICAL MOMENTUM 470 REM D2$ = MEMORY OF CAR DIRECTION FOR SMOKE TRAIL 480 REM SP = SPEED SHOWN ON SPEEDOMETER 490 REM ET = SILENT TIMER 500 REM ET2 = TIMER SHOWN ON CLOCK 510 REM A1 = HORIZONTAL SPEED ALTERED FOR ENGINE SOUND 520 REM B1 = VERTICAL SPEED ALTERED FOR ENGINE SOUND 530 REM SIZ = EXPLOSION SIZE WHEN CAR IS DESTROYED 540 REM FIN = FINISHING POSITION BETWEEN 1 AND 10 550 REM C1 = HORIZONTAL JUMP HEIGHT 560 REM C2 = VERTICAL JUMP HEIGHT 570 REM D1 = HORIZONTAL FALLING SPEED 580 REM D2 = VERTICAL FALLING SPEED 590 ARO$ = "r30h10f10g10e10" 600 DIM DR(300), DL(300), DU(300), DD(300), LAP(3), REDY(1900), SMOK(100), EXPL(290), SQU(1000), Y(726), X(726): RANDOMIZE TIMER 610 KEY OFF 620 CLS : SCREEN 9 630 LOCATE 5, 30: PRINT "MACHINE SPEED SETTING" 640 PRINT 650 PRINT "ENTER (ROUGHLY) THE SPEED OF YOU'RE COMPUTER" 660 PRINT "1 WOULD BE A HIGH-END 486 OR PENTIUM AND 5 WOULD BE A 286 OR 386" 670 KBD$ = INKEY$ 680 MSPD = VAL(KBD$) 690 IF MSPD < 6 AND MSPD > 0 THEN GOTO 710 700 GOTO 670 710 CLS 720 LOCATE 12, 31 730 COLOR 15 740 PRINT "MY-WAY ENTERTAINMENT" 750 FOR Y = 155 TO 165 760 FOR X = 238 TO 400 770 IF POINT(X, Y) = 15 THEN X(C) = X: Y(C) = Y: IF C < 726 THEN C = C + 1 780 NEXT: NEXT 790 FOR L = 1 TO 10000 * (6 - MSPD) 800 NEXT 810 FOR L = 0 TO 726 820 PSET (X(L), Y(L)), 0 830 Y(L) = Y(L) + Z 840 X(L) = X(L) + INT(RND * 80) - 40 850 Y(L) = Y(L) + INT(RND * 80) - 40 860 PSET (X(L), Y(L)), 15 870 C = C + 1 880 NEXT 890 IF INKEY$ <> "" THEN GOTO 930 900 IF Z > 60 THEN GOTO 930 910 IF C > 1000 THEN Z = Z + (5 * MSPD) 920 GOTO 810 930 CLS 940 KEY OFF: CLS : SCREEN 9 950 CIRCLE (4, 2), 3, 8 960 CIRCLE (4, 8), 3, 8 970 CIRCLE (7, 2), 3, 8 980 CIRCLE (7, 8), 3, 8 990 PAINT (4, 2), 8 1000 PAINT (4, 8), 8 1010 PAINT (7, 2), 8 1020 PAINT (7, 8), 8 1030 GET (0, 0)-(10, 10), SMOK 1040 COL = 0 1050 FOR L = 0 TO 12 1060 IF COL = 0 THEN COL = 14: GOTO 1090 1070 IF COL = 14 THEN COL = 4: GOTO 1090 1080 IF COL = 4 THEN COL = 0: GOTO 1090 1090 CIRCLE (25, 15), L, COL 1100 NEXT L 1110 GET (10, 0)-(40, 30), EXPL 1120 SND$ = "Off": SKIL = 2: SMOK$ = "Off": LAPS = 5 1130 DMG = 0: CAR$ = "" 1140 Z = -1: SOUND 12000, .1: TRAK = 0: LOCATE 1: SCREEN 0: SCREEN 9: PALETTE 2, 36 1150 IF SKIL < 1 THEN SKIL = 2 1160 FOR Y = 1 TO 50 1170 Z = Z * 1.17 1180 LINE (-1, 350 - Y + Z)-(640, 350 - Y + Z), 4 1190 NEXT 1200 COLOR 15 1210 PRINT "EXTREME VELOCITY": Z = .7: PRINT "(PRESS ANY KEY TO SKIP)" 1220 FOR X = 0 TO 130 1230 FOR Y = 0 TO 11 1240 IF X < 60 THEN COL = 2 1250 IF X > 60 THEN COL = 2 1260 IF INKEY$ <> "" THEN GOTO 1330 1270 IF POINT(X, Y) = 15 THEN CIRCLE (X * 5 + 2, Y * 5 * Z + 22), 1 + Z, COL: CIRCLE (X * 5 + 2, Y * 5 * Z + 22), 3 + Z, COL 1280 Z = Z * 1.0007 1290 NEXT: NEXT 1300 LOCATE 11,70 1310 COLOR 2 1320 PRINT "VERSION 1.1" 1330 LINE (250, 145)-(397, 285), 8, BF 1340 LINE (255, 150)-(392, 280), 0, BF 1350 LINE (0, 0)-(190, 25), 0, BF 1360 LOCATE 12, 37: COLOR 8: PRINT "Main Menu" 1370 LINE (280, 170)-(367, 170), 8 1380 LOCATE 14, 35: PRINT "1.Begin Game" 1390 LOCATE 16, 35: PRINT "2.Practice" 1400 LOCATE 18, 35: PRINT "3.Options" 1410 LOCATE 20, 35: PRINT "4.Instructions" 1420 LINE (200, 300)-(447, 330), 8, BF 1430 LINE (205, 305)-(442, 325), 0, BF 1440 LOCATE 23, 30: PRINT "Enter your choice:" 1450 KBD$ = INKEY$ 1460 IF KBD$ = CHR$(27) THEN GOTO 10030 1470 IF KBD$ = "1" THEN GOTO 2200 1480 IF KBD$ = "2" THEN GOTO 2050 1490 IF KBD$ = "3" THEN GOTO 1520 1500 IF KBD$ = "4" THEN GOTO 9790 1510 GOTO 1450 1520 COLOR 3, 8 1530 CLS 1540 FOR Y = 0 TO 350 STEP 10 1550 LINE (0, Y)-(220, 350 - Y), 4 1560 LINE (420, Y)-(640, 350 - Y), 4 1570 NEXT 1580 FOR X = 0 TO 220 STEP 10 1590 LINE (X, 0)-(220 - X, 350), 1 1600 LINE (X + 420, 0)-(640 - X, 350), 1 1610 NEXT 1620 COLOR 4 1630 FOR L = 1 TO 18: LOCATE L, 29: PRINT " ": NEXT L 1640 LOCATE 20, 30: PRINT "(PRESS ESCAPE TO RETURN" 1650 LOCATE 21, 30: PRINT " TO THE MAIN MENU)" 1660 LOCATE 5, 33: PRINT "1. SOUND: "; SND$: PRINT 1670 LOCATE , 33: PRINT "2. EXAUST: "; SMOK$: PRINT 1680 LOCATE , 33: PRINT "3. DIFICULTY:"; SKIL: PRINT 1690 LOCATE , 33: PRINT "4. LAPS:"; LAPS: PRINT 1700 LOCATE , 33: PRINT "ENTER YOUR CHOICE": CHO = 0 1710 KBD$ = INKEY$ 1720 IF KBD$ = "1" THEN GOTO 1790 1730 IF KBD$ = "2" THEN GOTO 1990 1740 IF KBD$ = "3" THEN GOTO 1850 1750 IF KBD$ = "4" THEN GOTO 1920 1760 IF KBD$ = CHR$(27) THEN GOTO 1130 1770 IF CHO > 0 THEN GOTO 1790 1780 GOTO 1710 1790 PRINT : LOCATE , 29: PRINT "SOUND: 1 = On , 2 = Off:" 1800 KBD$ = INKEY$ 1810 IF KBD$ = "1" THEN SND$ = "On" 1820 IF KBD$ = "2" THEN SND$ = "Off" 1830 IF KBD$ <> "" THEN GOTO 1630 1840 GOTO 1800 1850 PRINT : LOCATE , 35: PRINT "DIFFICULTY :" 1860 KBD$ = INKEY$ 1870 IF KBD$ <> "" THEN SKIL = VAL(KBD$) 1880 IF SKIL > 5 THEN SKIL = 5 1890 IF SKIL < 1 THEN SKIL = 1 1900 IF KBD$ <> "" AND SKIL > 0 THEN GOTO 1630 1910 GOTO 1860 1920 PRINT : LOCATE , 32: PRINT "NUMBER OF LAPS :" 1930 KBD$ = INKEY$ 1940 IF KBD$ <> "" THEN LAPS = VAL(KBD$) 1950 IF LAPS < 1 THEN LAPS = 1 1960 IF LAPS > 10 THEN LAPS = 10 1970 IF KBD$ <> "" AND LAPS > 0 THEN GOTO 1630 1980 GOTO 1930 1990 PRINT : LOCATE , 29: PRINT "EXAUST:1 = On , 2 = Off:" 2000 KBD$ = INKEY$ 2010 IF KBD$ = "1" THEN SMOK$ = "On" 2020 IF KBD$ = "2" THEN SMOK$ = "Off" 2030 IF KBD$ <> "" THEN GOTO 1630 2040 GOTO 2000 2050 COLOR 3, 0: CLS 2060 FOR X = 0 TO 350 STEP 3 2070 LINE (X, 0)-(0, 350 - X), 2 2080 LINE (639 - X, 0)-(639, 350 - X), 4 2090 LINE (639 - X, 349)-(639, X), 2 2100 LINE (0, X)-(X, 349), 4 2110 NEXT 2120 LOCATE 10, 23: PRINT "Enter the track number you would like:" 2130 KBD$ = INKEY$ 2140 TRAK = VAL(KBD$) 2150 IF TRAK > 0 THEN SKIL = 0: GOTO 2180 2160 IF KBD$ = CHR$(27) THEN GOTO 1130 2170 GOTO 2130 2180 IF TRAK > 9 OR TRAK < 1 THEN LOCATE , 30: PRINT "No such track!": GOTO 2120 2190 TRAK = TRAK - 1 2200 SCREEN 9: CLS 2210 LINE (0, 0)-(100, 70), 15, B 2220 LINE (1, 1)-(99, 69), 15, B 2230 GET (0, 0)-(100, 70), SQU 2240 CLS : X = 30 2250 '**** DIVING HAWK **** 2260 LINE (200, 34)-(280, 65), 1' RIGHT 2270 LINE (200, 96)-(280, 65), 1 2280 LINE (200, 96)-(200, 34), 1 2290 PAINT (225, 65), 1 2300 LINE (213, 45)-(265, 65), 9 2310 LINE (213, 85)-(265, 65), 9 2320 LINE (213, 44)-(266, 65), 9 2330 LINE (213, 86)-(266, 65), 9 2340 LINE (232, 55)-(263, 65), 0 2350 LINE (232, 75)-(263, 65), 0 2360 LINE (232, 55)-(232, 75), 0 2370 PAINT (240, 65), 0 2380 REM **** TOTAL ECLIPSE **** 2390 CIRCLE (406, 65), 33, 15, 4.725, 1.575, 1.3' RGT 2400 CIRCLE (380, 65), 33, 15, 4.725, 1.575, 1.3 2410 LINE (350, 32)-(407, 32), 15 2420 LINE (350, 98)-(407, 98), 15 2430 PAINT (420, 65), 15 2440 CIRCLE (398, 65), 32, 8, 4.725, 1.575, 1.3 2450 CIRCLE (391, 65), 32, 8, 4.725, 1.575, 1.3 2460 PAINT (420, 65), 8 2470 CIRCLE (390, 65), 32, 7, 4.725, 1.575, 1.3 2480 CIRCLE (383, 65), 32, 7, 4.725, 1.575, 1.3 2490 PAINT (412, 65), 7 2500 CIRCLE (423, 65), 7, 0 2510 PAINT (423, 65), 0 2520 REM **** ROLLING THUNDER **** 2530 LINE (510, 30)-(590, 65), 14' RIGHT 2540 LINE (510, 100)-(590, 65), 14 2550 LINE (510, 30)-(535, 65), 14 2560 LINE (510, 100)-(535, 65), 14 2570 PAINT (562, 65), 14 2580 CIRCLE (536, 65), 16, 6, 4.3, 2, 2 2590 CIRCLE (535, 65), 16, 6, 4.3, 2, 2 2600 CIRCLE (565, 65), 10, 0, , , .5 2610 PAINT (565, 65), 0 2620 ' **** SPEED DEMON **** 2630 CIRCLE (104, 65), 20, 4, 5.3, .85' RIGHT 2640 LINE (116, 53)-(75, 35), 4 2650 LINE (116, 77)-(75, 94), 4 2660 LINE (75, 35)-(40, 35), 4 2670 LINE (75, 94)-(40, 94), 4 2680 CIRCLE (42, 51), 21, 4, 5.1, 1.57 2690 CIRCLE (42, 78), 21, 4, 4.75, 1.17 2700 CIRCLE (100, 65), 15, 4, , , .4 2710 PAINT (60, 65), 4 2720 CIRCLE (104, 65), 20, 14, 5.3, .85 2730 CIRCLE (114, 65), 14, 14, 5.3, .85, 2.5 2740 PAINT (122, 65), 14 2750 PAINT (100, 65), 8, 4 2760 HIDE$ = "" 2770 PRINT TAB(30); "PLEASE SELECT A VEHICLE": LOCATE 20: PRINT TAB(30); "PRESS ENTER TO CONTINUE" 2780 COLOR 2: LOCATE 20: PRINT TAB(30); "PRESS ENTER TO CONTINUE" 2790 KBD$ = INKEY$ 2800 IF KBD$ = CHR$(0) + "M" AND X < 400 THEN GOSUB 2940 2810 IF KBD$ <> "" THEN HIDE$ = HIDE$ + KBD$ 2820 IF KBD$ = CHR$(0) + "K" AND X > 100 THEN GOSUB 3010 2830 IF KBD$ = CHR$(13) AND CAR$ <> "" THEN GOTO 3080 2840 IF HIDE$ = "SEEKRET" OR HIDE$ = "seekret" THEN CAR$ = "STORM": GOTO 3080 2850 IF KBD$ = CHR$(27) THEN GOTO 1130 2860 PUT (X, 30), SQU, XOR 2870 LOCATE 10 2880 IF X = 30 THEN COLOR 4: PRINT TAB(35); "SPEED DEMON ": COLOR 15: PRINT : PRINT TAB(34); "TOP SPEED: 5": PRINT TAB(34); "ACCELERATION: 3": PRINT TAB(34); "CORNERING: 2": CAR$ = "SPEED DEMON" 2890 IF X = 185 THEN COLOR 1: PRINT TAB(35); "DIVING HAWK ": COLOR 15: PRINT : PRINT TAB(34); "TOP SPEED: 3": PRINT TAB(34); "ACCELERATION: 5": PRINT TAB(34); "CORNERING: 2": CAR$ = "DIVING HAWK" 2900 IF X = 340 THEN COLOR 7: PRINT TAB(34); "TOTAL ECLIPSE ": COLOR 15: PRINT : PRINT TAB(34); "TOP SPEED: 3": PRINT TAB(34); "ACCELERATION: 4": PRINT TAB(34); "CORNERING: 3": CAR$ = "TOTAL ECLIPSE" 2910 IF X = 495 THEN COLOR 14: PRINT TAB(33); "ROLLING THUNDER": COLOR 15: PRINT : PRINT TAB(34); "TOP SPEED: 2": PRINT TAB(34); "ACCELERATION: 3": PRINT TAB(34); "CORNERING: 5": CAR$ = "ROLLING THUNDER" 2920 PUT (X, 30), SQU 2930 GOTO 2790 2940 REM **** SUB TO MOVE CAR SELECTION BOX RIGHT **** 2950 FOR L = 1 TO 10 2960 X = X + 15.5 2970 PUT (X, 30), SQU, XOR 2980 PUT (X, 30), SQU 2990 NEXT L 3000 RETURN 3010 REM **** SUB TO MOVE CAR SELECTION BOX LEFT **** 3020 FOR L = 10 TO 1 STEP -1 3030 X = X - 15.5 3040 PUT (X, 30), SQU, XOR 3050 PUT (X, 30), SQU 3060 NEXT L 3070 RETURN 3080 CLS : SCREEN 9 3090 IF LEFT$(CAR$, 1) = "D" THEN GOTO 3130 3100 IF LEFT$(CAR$, 1) = "T" THEN GOTO 3550 3110 IF LEFT$(CAR$, 1) = "R" THEN GOTO 4090 3120 IF LEFT$(CAR$, 1) = "S" THEN GOTO 4470 3130 REM **** DIVING HAWK **** 3140 LINE (1, 4)-(30, 15), 1' RIGHT 3150 LINE (1, 26)-(30, 15), 1 3160 LINE (1, 4)-(1, 26), 1 3170 PAINT (15, 15), 1 3180 LINE (3, 9)-(25, 15), 9 3190 LINE (3, 21)-(25, 15), 9 3200 LINE (10, 12)-(20, 15), 0 3210 LINE (10, 18)-(20, 15), 0 3220 LINE (10, 12)-(10, 18), 0 3230 PAINT (15, 15), 0 3240 LINE (64, 4)-(35, 15), 1' LEFT 3250 LINE (64, 26)-(35, 15), 1 3260 LINE (64, 4)-(64, 26), 1 3270 PAINT (50, 15), 1 3280 LINE (62, 9)-(40, 15), 9 3290 LINE (62, 21)-(40, 15), 9 3300 LINE (55, 12)-(45, 15), 0 3310 LINE (55, 18)-(45, 15), 0 3320 LINE (55, 12)-(55, 18), 0 3330 PAINT (50, 15), 0 3340 LINE (105, 1)-(120, 30), 1' DOWN 3350 LINE (133, 1)-(120, 30), 1 3360 LINE (105, 1)-(133, 1), 1 3370 PAINT (120, 15), 1 3380 LINE (112, 3)-(120, 25), 9 3390 LINE (128, 3)-(120, 25), 9 3400 LINE (117, 12)-(120, 20), 0 3410 LINE (123, 12)-(120, 20), 0 3420 LINE (117, 12)-(123, 12), 0 3430 PAINT (120, 15), 0 3440 LINE (72, 29)-(85, 0), 1' UP 3450 LINE (98, 29)-(85, 0), 1 3460 LINE (72, 29)-(98, 29), 1 3470 PAINT (85, 15), 1 3480 LINE (77, 27)-(85, 5), 9 3490 LINE (93, 27)-(85, 5), 9 3500 LINE (82, 18)-(85, 10), 0 3510 LINE (88, 18)-(85, 10), 0 3520 LINE (82, 18)-(88, 18), 0 3530 PAINT (85, 15), 0 3540 GOTO 4970 3550 REM **** TOTAL ECLIPSE **** 3560 CIRCLE (17, 15), 13, 15, 4.725, 1.575, 1.3' RGT 3570 CIRCLE (7, 15), 12, 15, 4.725, 1.575, 1.3 3580 LINE (0, 2)-(17, 2) 3590 LINE (0, 28)-(17, 28) 3600 PAINT (25, 15), 15 3610 CIRCLE (14, 15), 12, 8, 4.725, 1.575, 1.3 3620 CIRCLE (13, 15), 12, 8, 4.725, 1.575, 1.3 3630 CIRCLE (12, 15), 12, 8, 4.725, 1.575, 1.3 3640 CIRCLE (11, 15), 12, 7, 4.725, 1.575, 1.3 3650 CIRCLE (10, 15), 12, 7, 4.725, 1.575, 1.3 3660 CIRCLE (9, 15), 12, 7, 4.725, 1.575, 1.3 3670 CIRCLE (23, 15), 3, 0 3680 PAINT (23, 15), 0 3690 CIRCLE (46, 15), 13, 15, 1.575, 4.725, 1.3' LFT 3700 CIRCLE (56, 15), 12, 15, 1.575, 4.725, 1.3 3710 LINE (46, 2)-(65, 2) 3720 LINE (46, 28)-(65, 28) 3730 PAINT (37, 15), 15 3740 CIRCLE (49, 15), 12, 8, 1.575, 4.725, 1.3 3750 CIRCLE (50, 15), 12, 8, 1.575, 4.725, 1.3 3760 CIRCLE (51, 15), 12, 8, 1.575, 4.725, 1.3 3770 CIRCLE (52, 15), 12, 7, 1.575, 4.725, 1.3 3780 CIRCLE (53, 15), 12, 7, 1.575, 4.725, 1.3 3790 CIRCLE (54, 15), 12, 7, 1.575, 4.725, 1.3 3800 CIRCLE (40, 15), 3, 0 3810 PAINT (40, 15), 0 3820 CIRCLE (85, 13), 13, 15, , 3.15, .77' UP 3830 CIRCLE (85, 23), 12, 15, , 3.15, .77 3840 LINE (72, 13)-(72, 30) 3850 LINE (98, 13)-(98, 30) 3860 PAINT (85, 5), 15 3870 CIRCLE (85, 16), 12, 8, , 3.15, .77 3880 CIRCLE (85, 17), 12, 8, , 3.15, .77 3890 CIRCLE (85, 18), 12, 8, , 3.15, .77 3900 CIRCLE (85, 19), 12, 7, , 3.15, .77 3910 CIRCLE (85, 20), 12, 7, , 3.15, .77 3920 CIRCLE (85, 21), 12, 7, , 3.15, .77 3930 CIRCLE (85, 6), 3, 0 3940 PAINT (85, 6), 0 3950 CIRCLE (120, 19), 13, 15, 3.15, , .77' DOWN 3960 CIRCLE (120, 9), 13, 15, 3.15, , .77 3970 LINE (107, 19)-(107, 0) 3980 LINE (133, 19)-(133, 0) 3990 PAINT (120, 25), 15 4000 CIRCLE (120, 16), 12, 8, 3.15, , .77 4010 CIRCLE (120, 15), 12, 8, 3.15, , .77 4020 CIRCLE (120, 14), 12, 8, 3.15, , .77 4030 CIRCLE (120, 13), 12, 7, 3.15, , .77 4040 CIRCLE (120, 12), 12, 7, 3.15, , .77 4050 CIRCLE (120, 11), 12, 7, 3.15, , .77 4060 CIRCLE (120, 26), 3, 0 4070 PAINT (120, 26), 0 4080 GOTO 4970 4090 REM **** ROLLING THUNDER **** 4100 LINE (0, 0)-(28, 15), 14' RIGHT 4110 LINE (0, 30)-(28, 15), 14 4120 LINE (0, 0)-(10, 15), 14 4130 LINE (0, 30)-(10, 15), 14 4140 PAINT (12, 15), 14 4150 CIRCLE (11, 15), 6, 6, 4.3, 2, 2 4160 CIRCLE (10, 15), 6, 6, 4.3, 2, 2 4170 CIRCLE (20, 15), 4, 0, , , .6 4180 PAINT (20, 15), 0 4190 LINE (65, 0)-(37, 15), 14' LEFT 4200 LINE (65, 30)-(37, 15), 14 4210 LINE (65, 0)-(55, 15), 14 4220 LINE (65, 30)-(55, 15), 14 4230 PAINT (45, 15), 14 4240 CIRCLE (55, 15), 6, 6, 2, 4.3, 2 4250 CIRCLE (56, 15), 6, 6, 2, 4.3, 2 4260 CIRCLE (45, 15), 4, 0, , , .6 4270 PAINT (45, 15), 0 4280 LINE (70, 30)-(85, 2), 14' UP 4290 LINE (100, 30)-(85, 2), 14 4300 LINE (70, 30)-(85, 20), 14 4310 LINE (100, 30)-(85, 20), 14 4320 PAINT (85, 15), 14 4330 CIRCLE (85, 20), 6, 6, 0, 3.15, .5 4340 CIRCLE (85, 21), 6, 6, 0, 3.15, .5 4350 CIRCLE (85, 10), 4, 0, , , 1.6666 4360 PAINT (85, 10), 0 4370 LINE (105, 0)-(120, 28), 14' DOWN 4380 LINE (135, 0)-(120, 28), 14 4390 LINE (105, 0)-(120, 10), 14 4400 LINE (135, 0)-(120, 10), 14 4410 PAINT (120, 15), 14 4420 CIRCLE (120, 10), 6, 6, 3.15, 0, .5 4430 CIRCLE (120, 11), 6, 6, 3.15, 0, .5 4440 CIRCLE (120, 20), 4, 0, , , 1.6666 4450 PAINT (120, 20), 0 4460 GOTO 4970 4470 REM **** SPEED DEMON **** 4480 CIRCLE (24, 15), 5, 4, 5.3, 1' FIRST 4490 LINE (28, 13)-(13, 3), 4 4500 LINE (28, 17)-(13, 27), 4 4510 LINE (13, 3)-(1, 3), 4 4520 LINE (13, 27)-(1, 27), 4 4530 CIRCLE (2, 10), 8, 4, 5.1, 1.57 4540 CIRCLE (2, 20), 8, 4, 4.75, 1.17 4550 CIRCLE (20, 15), 5, 4, , , .7 4560 PAINT (10, 15), 4 4570 CIRCLE (24, 15), 5, 14, 5.3, 1 4580 CIRCLE (23, 15), 5, 14, 6, .3 4590 PAINT (20, 15), 8, 4 4600 CIRCLE (41, 15), 5, 4, 2.2, 4' SECOND 4610 LINE (37, 13)-(52, 3), 4 4620 LINE (37, 17)-(52, 27), 4 4630 LINE (52, 3)-(64, 3), 4 4640 LINE (52, 27)-(64, 27), 4 4650 CIRCLE (63, 10), 8, 4, 1.5, 4 4660 CIRCLE (63, 20), 8, 4, 2, 4.7 4670 CIRCLE (45, 15), 5, 4, , , .7 4680 PAINT (39, 15), 4 4690 CIRCLE (41, 15), 5, 14, 2.3, 4 4700 CIRCLE (42, 15), 5, 14, 2.8, 3.6 4710 PAINT (45, 15), 8, 4 4720 CIRCLE (85, 5), 5, 4, .5, 3' THIRD 4730 LINE (81, 3)-(72, 17), 4 4740 LINE (89, 3)-(98, 17), 4 4750 LINE (72, 17)-(72, 27), 4 4760 LINE (98, 17)-(98, 27), 4 4770 CIRCLE (79, 25), 6, 4, .5, 3.2 4780 CIRCLE (91, 25), 6, 4, , 2.8 4790 CIRCLE (85, 10), 5, 4, , , 1.428 4800 PAINT (85, 20), 4 4810 CIRCLE (85, 5), 5, 14, .5, 3 4820 CIRCLE (85, 6), 5, 14, 1, 2.5 4830 PAINT (85, 10), 8, 4 4840 CIRCLE (120, 25), 5, 4, 3.5, 5.9'FOURTH 4850 LINE (116, 27)-(108, 13), 4 4860 LINE (124, 27)-(132, 13), 4 4870 LINE (108, 13)-(108, 3), 4 4880 LINE (132, 13)-(132, 3), 4 4890 CIRCLE (115, 5), 6, 4, 3.1, 5.7 4900 CIRCLE (125, 5), 6, 4, 4, 6.2 4910 CIRCLE (120, 20), 5, 4, , , 1.428 4920 PAINT (120, 12), 4 4930 CIRCLE (120, 25), 5, 14, 3.5, 5.9 4940 CIRCLE (120, 24), 5, 14, 4, 5.4 4950 PAINT (120, 20), 8, 4 4960 IF CAR$ = "STORM" THEN GOSUB 8940 4970 GET (0, 0)-(30, 30), DR 4980 GET (35, 0)-(65, 30), DL 4990 GET (70, 0)-(100, 30), DU 5000 GET (105, 0)-(135, 30), DD 5010 CLS 5020 IF LEFT$(CAR$, 1) = "S" THEN ACC = 5: CRN = 2: SPD = 5: D$ = "R" 5030 IF LEFT$(CAR$, 1) = "R" THEN ACC = 3: CRN = 5: SPD = 2: D$ = "R" 5040 IF LEFT$(CAR$, 1) = "D" THEN ACC = 5: CRN = 2: SPD = 3: D$ = "R" 5050 IF LEFT$(CAR$, 1) = "T" THEN ACC = 4: CRN = 3: SPD = 3: D$ = "R" 5060 A = 0: B = 0 5070 IF CAR$ = "STORM" THEN ACC = 6: CRN = 4: SPD = 7: D$ = "R" 5080 TRAK = TRAK + 1 5090 IF TRAK = 1 THEN TRAK$ = "Mercury" 5100 IF TRAK = 2 THEN TRAK$ = "Venus" 5110 IF TRAK = 3 THEN TRAK$ = "Earth" 5120 IF TRAK = 4 THEN TRAK$ = "Mars" 5130 IF TRAK = 5 THEN TRAK$ = "Jupiter" 5140 IF TRAK = 6 THEN TRAK$ = "Saturn" 5150 IF TRAK = 7 THEN TRAK$ = "Uranus" 5160 IF TRAK = 8 THEN TRAK$ = "Neptune" 5170 IF TRAK = 9 THEN TRAK$ = "Pluto" 5180 IF TRAK = 10 THEN TRAK$ = "Planet-X" 5190 X$ = "": Y$ = "" 5200 COLOR 2 5210 LOCATE 5, 5 5220 LINE (0, 35)-(200, 100), 2, BF 5230 LINE (10, 45)-(190, 90), 0, BF 5240 PRINT "Track : "; TRAK$ 5250 GET (0, 35)-(200, 100), REDY 5260 CLS 5270 GOTO 6300 5280 LINE (535, 3)-(635, 8), 9, BF 5290 LINE (534, 2)-(636, 9), 0, B 5300 LINE (430, 3)-(530, 8), 11, BF 5310 LINE (429, 2)-(531, 9), 0, B 5320 LINE (325, 3)-(425, 8), 14, BF 5330 LINE (324, 2)-(426, 9), 0, B 5340 CIRCLE (20, 20), 22, 15 5350 PAINT (20, 20), 15 5360 LAP(3) = 1: LAP(0) = 0: LAP(1) = 0: LAP(2) = 0 5370 X = 330 5380 Y = 30 + Z 5390 ET = TIMER 5400 FOR L = 439 TO 220 STEP -20 5410 PUT (L, 150), REDY, XOR 5420 IF SND$ = "On" THEN SOUND L, .5 5430 KBD$ = INKEY$ 5440 PUT (L, 150), REDY 5450 NEXT 5460 PUT (220, 150), REDY, XOR 5470 FOR L = 1 TO 10 5480 IF SND$ = "On" THEN SOUND RND * 20 + 64, .3 5490 NEXT L 5500 FOR L = 1 TO 6000: KBD$ = INKEY$: NEXT L 5510 PUT (220, 150), REDY 5520 FOR L = 220 TO 1 STEP -20 5530 PUT (L, 150), REDY, XOR 5540 IF SND$ = "On" THEN SOUND L + 63, .5 5550 PUT (L, 150), REDY 5560 NEXT 5570 KBD$ = INKEY$ 5580 IF KBD$ = CHR$(0) + "H" THEN B = B - (ACC / 6): A = A / (CRN - .8): D$ = "U" 5590 IF KBD$ = CHR$(0) + "P" THEN B = B + (ACC / 6): A = A / (CRN - .8): D$ = "D" 5600 IF KBD$ = CHR$(0) + "K" THEN A = A - (ACC / 6): B = B / (CRN - .8): D$ = "L" 5610 IF KBD$ = CHR$(0) + "M" THEN A = A + (ACC / 6): B = B / (CRN - .8): D$ = "R" 5620 IF D$ = "U" AND POINT(X + 15, Y + 15) <> 7 THEN PUT (X, Y), DU, XOR 5630 IF D$ = "D" AND POINT(X + 15, Y + 15) <> 7 THEN PUT (X, Y), DD, XOR 5640 IF D$ = "L" AND POINT(X + 15, Y + 15) <> 7 THEN PUT (X, Y), DL, XOR 5650 IF D$ = "R" AND POINT(X + 15, Y + 15) <> 7 THEN PUT (X, Y), DR, XOR 5660 IF KBD$ = CHR$(27) THEN GOTO 8770 5670 IF KBD$ = "S" OR KBD$ = "s" THEN IF SND$ = "On" THEN SND$ = "Off": SOUND 12000, .1: GOTO 5690 5680 IF KBD$ = "S" OR KBD$ = "s" THEN IF SND$ = "Off" THEN SND$ = "On": SOUND 12000, .1 5690 IF SMOK$ = "On" THEN D2$ = D2$ + " " + D$ 5700 IF SMOK$ = "On" THEN D2$ = RIGHT$(D2$, 30) 5710 IF SMOK$ = "On" AND LEFT$(X$, 1) <> " " THEN X$ = RIGHT$(X$, 59) 5720 IF SMOK$ = "On" AND LEFT$(Y$, 1) <> " " THEN Y$ = RIGHT$(Y$, 59) 5730 IF SMOK$ = "On" AND X < 10 THEN X$ = X$ + " " + STR$(CINT(X)) 5740 IF SMOK$ = "On" AND X >= 10 AND X < 100 THEN X$ = X$ + " " + STR$(CINT(X)) 5750 IF SMOK$ = "On" AND X >= 100 THEN X$ = X$ + STR$(CINT(X)) 5760 IF SMOK$ = "On" AND Y < 10 THEN Y$ = Y$ + " " + STR$(CINT(Y)) 5770 IF SMOK$ = "On" AND Y >= 10 AND Y < 100 THEN Y$ = Y$ + " " + STR$(CINT(Y)) 5780 IF SMOK$ = "On" AND Y >= 100 THEN Y$ = Y$ + STR$(CINT(Y)) 5790 IF SMOK$ = "On" THEN X$ = RIGHT$(X$, 60) 5800 IF SMOK$ = "On" THEN Y$ = RIGHT$(Y$, 60) 5810 IF SMOK$ = "On" THEN X2 = VAL(LEFT$(X$, 4)): Y2 = VAL(LEFT$(Y$, 4)) 5820 IF SMOK$ = "On" AND D$ = "R" AND X < 620 AND X > 15 AND Y > 5 AND Y < 330 AND POINT(X, Y + 15) <> 7 THEN PUT (X - 10, Y + 10), SMOK, XOR 5830 IF SMOK$ = "On" AND D$ = "L" AND X < 595 AND X > 5 AND Y > 5 AND Y < 330 AND POINT(X + 30, Y + 15) <> 7 THEN PUT (X + 30, Y + 10), SMOK, XOR 5840 IF SMOK$ = "On" AND D$ = "U" AND X < 620 AND X > 5 AND Y > 5 AND Y < 305 AND POINT(X + 15, Y + 30) <> 7 THEN PUT (X + 10, Y + 30), SMOK, XOR 5850 IF SMOK$ = "On" AND D$ = "D" AND X < 620 AND X > 5 AND Y > 15 AND Y < 330 AND POINT(X + 15, Y) <> 7 THEN PUT (X + 10, Y - 10), SMOK, XOR 5860 IF SMOK$ = "On" AND LEFT$(D2$, 2) = " R" AND X2 < 620 AND X2 > 15 AND Y2 > 5 AND Y2 < 330 AND POINT(X2, Y2 + 15) <> 7 THEN PUT (X2 - 10, Y2 + 10), SMOK 5870 IF SMOK$ = "On" AND LEFT$(D2$, 2) = " L" AND X2 < 595 AND X2 > 5 AND Y2 > 5 AND Y2 < 330 AND POINT(X2 + 30, Y2 + 15) <> 7 THEN PUT (X2 + 30, Y2 + 10), SMOK 5880 IF SMOK$ = "On" AND LEFT$(D2$, 2) = " U" AND X2 < 620 AND X2 > 5 AND Y2 > 5 AND Y2 < 305 AND POINT(X2 + 15, Y2 + 30) <> 7 THEN PUT (X2 + 10, Y2 + 30), SMOK 5890 IF SMOK$ = "On" AND LEFT$(D2$, 2) = " D" AND X2 < 620 AND X2 > 5 AND Y2 > 15 AND Y2 < 330 AND POINT(X2 + 15, Y2) <> 7 THEN PUT (X2 + 10, Y2 - 10), SMOK 5900 SP = ABS(((A + B) * MSPD) * 100) / SPD / MSPD 5910 IF SP > 100 THEN SP = 100 5920 LINE (530, 3)-(530 - SP, 8), 12, BF 5930 LINE (430, 3)-(530 - SP, 8), 11, BF 5940 ET2 = ET2 * SKIL 5950 ET2 = (ET2 / 16.7) - 1.575 5960 IF ET2 < -6.27 THEN ET2 = ET2 + 6.27 5970 CIRCLE (20, 20), 20, 4, ET2, ET2 5980 IF A > MSPD * (SPD) THEN A = MSPD * SPD 5990 IF A < -MSPD * (SPD) THEN A = -MSPD * SPD 6000 IF B > MSPD * (SPD) THEN B = MSPD * SPD 6010 IF B < -MSPD * (SPD) THEN B = -MSPD * SPD 6020 A1 = ABS(A * 12 + 1): B1 = ABS(B * 12 + 1) 6030 IF SND$ = "On" THEN SOUND (SPD * 20) + (A1 * 5) + (B1 * 5) + (RND * 10), .01 6040 IF X > 320 AND Y + 25 > 150 AND Y - 100 < 150 AND LAP(0) < LAP(3) THEN LAP(0) = LAP(0) + 1 6050 IF Y > 175 AND X + 25 > 320 AND X - 25 < 320 AND LAP(1) < LAP(0) THEN LAP(1) = LAP(1) + 1 6060 IF X < 320 AND Y + 25 > 175 AND Y - 25 < 175 AND LAP(2) < LAP(1) THEN LAP(2) = LAP(2) + 1 6070 IF Y < 175 AND X + 25 > 320 AND X - 25 < 320 AND LAP(3) = LAP(2) THEN LAP(3) = LAP(3) + 1 6080 IF LAP(0) = LAP(1) AND LAP(0) = LAP(2) AND LAP(0) = LAP(3) - 1 THEN LINE (425, 3)-(425 - (100 / LAPS * LAP(3)), 8), 1, BF 6090 ET2 = (ET - TIMER) / 4 6100 IF ET2 < -60 THEN GOSUB 9300: GOTO 6300 6110 IF LAP(3) = 6 AND SKIL = 0 THEN SKIL = 2: FOR L = 1 TO 50000!: NEXT: GOTO 1140 6120 IF LAP(3) = LAPS + 1 AND SKIL > 0 THEN ET = INT(ABS((ET - TIMER) * 10)) / 10: LINE (425, 3)-(425 + (ET2 * SKIL), 8), 3, BF: SOUND 12000, .1: LAP(3) = 1: LAP(0) = 0: LAP(1) = 0: LAP(2) = 0: GOSUB 9300: GOTO 5080 6130 IF DMG >= 100 THEN GOTO 8770 6140 IF D$ = "U" AND POINT(X + 15, Y + 15) <> 7 THEN PUT (X, Y), DU 6150 IF D$ = "D" AND POINT(X + 15, Y + 15) <> 7 THEN PUT (X, Y), DD 6160 IF D$ = "L" AND POINT(X + 15, Y + 15) <> 7 THEN PUT (X, Y), DL 6170 IF D$ = "R" AND POINT(X + 15, Y + 15) <> 7 THEN PUT (X, Y), DR 6180 IF POINT(X + A, Y + B + 15) = 3 OR POINT(X + A + 30, Y + B + 15) = 3 OR POINT(X + B + 15, Y + B) = 3 OR POINT(X + A + 15, Y + B + 30) = 3 THEN GOSUB 9500 6190 IF X + A >= 600 OR X + A < 10 THEN A = 0 6200 IF Y + B >= 310 OR Y + B < 10 THEN B = 0 6210 X = X + A 6220 Y = Y + B 6230 IF POINT(X + A + 2, Y + 15 + B) = 2 THEN DMG = DMG + ABS((A + B) * 2 * SKIL) / 10: A = 0: B = B / 1.5: LINE (635, 3)-(635 - DMG, 8), 4, BF: LINE (535, 3)-(635 - DMG, 8), 9, BF 6240 IF POINT(X + A + 28, Y + 15 + B) = 2 THEN DMG = DMG + ABS((A + B) * 2 * SKIL) / 10: A = 0: B = B / 1.5: LINE (635, 3)-(635 - DMG, 8), 4, BF: LINE (535, 3)-(635 - DMG, 8), 9, BF 6250 IF POINT(X + 15 + A, Y + B + 2) = 2 THEN DMG = DMG + ABS((A + B) * 2 * SKIL) / 10: B = 0: : A = A / 1.5: LINE (635, 3)-(635 - DMG, 8), 4, BF: LINE (535, 3)-(635 - DMG, 8), 9, BF 6260 IF POINT(X + 15 + A, Y + 28 + B) = 2 THEN DMG = DMG + ABS((A + B) * 2 * SKIL) / 10: B = 0: A = A / 1.5: LINE (635, 3)-(635 - DMG, 8), 4, BF: LINE (535, 3)-(635 - DMG, 8), 9, BF 6270 IF POINT(X, Y + 15) = 4 OR POINT(X + 30, Y) = 4 OR POINT(X + 30, Y + 30) = 4 THEN DMG = DMG + SKIL * ABS(A + B / 20): LINE (635, 3)-(635 - DMG, 8), 4, BF: LINE (535, 3)-(635 - DMG, 8), 9, BF: PUT (X, Y), EXPL, XOR: PUT (X, Y), EXPL 6280 IF POINT(X, Y + 15) = 1 OR POINT(X + 30, 15) = 1 OR POINT(X + 15, Y) = 1 OR POINT(X + 15, Y + 30) = 1 THEN A = -A: B = -B 6290 GOTO 5570 6300 CLS 6310 Z = 0 6320 IF TRAK = 1 THEN GOSUB 6440 6330 IF TRAK = 3 THEN GOSUB 6800 6340 IF TRAK = 2 THEN GOSUB 6910 6350 IF TRAK = 6 THEN GOSUB 6990 6360 IF TRAK = 4 THEN GOSUB 6670 6370 IF TRAK = 5 THEN GOSUB 6510 6380 IF TRAK = 7 THEN GOSUB 8420 6390 IF TRAK = 8 THEN GOSUB 7310 6400 IF TRAK = 9 THEN GOSUB 7450 6410 IF TRAK = 10 THEN GOSUB 7820 6420 IF TRAK = 11 THEN GOTO 1130 6430 GOTO 5280 6440 REM **** SUB TO DRAW TRACK 'MERCURY' **** 6450 CIRCLE (320, 175), 120, 2, , , .2 6460 CIRCLE (320, 175), 295, 2, , , .545 6470 PAINT (0, 0), 2 6480 PAINT (320, 175), 2 6490 LINE (320, 15)-(330, 150), 15, BF: PALETTE 0, 56: PALETTE 2, 17 6500 RETURN 6510 REM **** SUB TO DRAW TRACK 'JUPITER' **** 6520 CLS : SCREEN 9 6530 CIRCLE (100, 175), 155, 2, 1.575, 4.725, 2 6540 LINE (100, 20)-(540, 20), 2 6550 CIRCLE (540, 175), 155, 2, 4.725, 1.575, 2 6560 LINE (100, 330)-(540, 330), 2 6570 CIRCLE (150, 175), 50, 2, 1.575, 4.725, 2 6580 LINE (150, 125)-(490, 125), 2 6590 CIRCLE (490, 175), 50, 2, 4.725, 1.575, 2 6600 LINE (150, 225)-(490, 225), 2 6610 LINE (290, 329)-(310, 226), 3, BF 6620 PAINT (320, 175), 2 6630 PAINT (0, 0), 2 6640 LINE (290, 330)-(200, 225), 2, BF 6650 LINE (320, 21)-(330, 124), 15, BF: PALETTE 0, 32: PALETTE 2, 52 6660 RETURN 6670 REM **** SUB TO DRAW TRACK 'MARS' **** 6680 CIRCLE (320, 175), 170, 2, 5.6, 3.8, .2 6690 CIRCLE (320, 175), 310, 2, 0, 3.14, .5 6700 CIRCLE (500, 175), 150, 2, 4.723, 0, 1.15 6710 CIRCLE (140, 175), 150, 2, 3.14, 4.723, 1.15 6720 LINE (180, 195)-(460, 325), 7, BF 6730 LINE (142, 325)-(502, 325), 2 6740 LINE (180, 195)-(460, 195), 2 6750 PAINT (1, 1), 2 6760 PAINT (320, 170), 2 6770 LINE (320, 21)-(330, 140), 15, BF 6780 PALETTE 0, 40: PALETTE 2, 4 6790 RETURN 6800 REM **** SUB TO DRAW TRACK 'EARTH' **** 6810 CLS : SCREEN 9 6820 CIRCLE (320, 100), 300, 2, 6, 3.4, .3 6830 CIRCLE (320, 250), 300, 2, 2.85, .3, .3 6840 CIRCLE (-40, 175), 100, 2, 5.5, .8 6850 CIRCLE (680, 175), 100, 2, 2.4, 4 6860 PAINT (0, 0), 2 6870 CIRCLE (320, 175), 160, 2, , , .6 6880 PAINT (320, 175), 2 6890 LINE (320, 11)-(330, 78), 15, BF: PALETTE 0, 0: PALETTE 2, 16 6900 RETURN 6910 REM **** SUB TO DRAW TRACK 'VENUS' **** 6920 CLS : PAINT (0, 0), 2 6930 LINE (50, 20)-(590, 230), 0, BF 6940 LINE (50, 50)-(440, 330), 0, BF 6950 LINE (160, 100)-(440, 150), 2, BF 6960 LINE (160, 100)-(340, 250), 2, BF 6970 LINE (320, 20)-(330, 99), 15, BF: PALETTE 0, 8: PALETTE 2, 15 6980 RETURN 6990 REM **** SUB TO DRAW TRACK 'SATURN' **** 7000 CIRCLE (110, 85), 100, 2, 1.575, 3.15 7010 LINE (110, 12)-(540, 12), 2 7020 CIRCLE (529, 85), 100, 2, , 1.575 7030 LINE (629, 85)-(629, 175), 2 7040 CIRCLE (490, 175), 139, 2, 3.5, 0, .5 7050 LINE (360, 200)-(320, 165), 2 7060 CIRCLE (312, 170), 10, 2, .5, 4 7070 LINE (305, 175)-(350, 220), 2 7080 CIRCLE (480, 195), 139, 2, 3.5, 5, .5 7090 CIRCLE (550, 300), 60, 2, 4.725, 2.1 7100 LINE (550, 344)-(110, 344), 2 7110 CIRCLE (110, 271), 100, 2, 3.15, 4.725 7120 LINE (10, 272)-(10, 80), 2 7130 LINE (10, 272)-(10, 80), 2 7140 CIRCLE (160, 120), 50, 2, 1.575, 3.15 7150 LINE (155, 83)-(480, 83), 2 7160 CIRCLE (480, 129), 45, 2, 3.15, 1.575, 1.6 7170 CIRCLE (402, 128), 50, 2, 0, 1.575 7180 LINE (402, 91)-(160, 91), 2 7190 CIRCLE (160, 120), 40, 2, 1.575, 3.15 7200 LINE (120, 120)-(120, 220), 2 7210 CIRCLE (240, 210), 120, 2, 3.15, 4.725 7220 LINE (240, 298)-(510, 298), 2 7230 CIRCLE (511, 301), 4, 2, 4.725, 1.575 7240 LINE (510, 304)-(220, 304), 2 7250 CIRCLE (240, 209), 130, 2, 3.15, 4.725 7260 LINE (110, 210)-(110, 120), 2 7270 PAINT (0, 0), 2 7280 PAINT (480, 150), 2 7290 LINE (320, 13)-(330, 82), 15, BF: PALETTE 0, 32: PALETTE 2, 15 7300 RETURN 7310 REM **** SUB TO DRAW TRACK 'NEPTUNE' **** 7320 CIRCLE (500, 80), 100, 2, , 2: Z = 50 7330 CIRCLE (320, -49), 250, 2, 4, 5.4, .3 7340 CIRCLE (140, 80), 100, 2, 1.2, 3.14 7350 CIRCLE (320, 30), 310, 2, 3.3, 6.12, 1.1 7360 CIRCLE (320, 100), 150, 2, 3.3, 6.12, 1.1 7370 CIRCLE (320, 110), 138, 2, 3.3, 6.12, .5 7380 PAINT (0, 0), 2 7390 PAINT (320, 200), 2 7400 CIRCLE (320, 8), 100, 4, 3.3, 6.12 7410 CIRCLE (320, -49), 250, 4, 4.3, 5.13, .3 7420 PAINT (320, 50), 4 7430 LINE (320, 82)-(330, 178), 15, BF: PALETTE 0, 56: PALETTE 2, 8 7440 RETURN 7450 REM **** SUB TO DRAW TRACK 'PLUTO' **** 7460 CLS : SCREEN 9 7470 CIRCLE (480, 88), 130, 4, 0, 1.575, .5 7480 CIRCLE (480, 88), 155, 4, 0, 1.575, .5 7490 LINE (610, 88)-(635, 200), 4, BF 7500 LINE (160, 10)-(480, 23), 4, BF 7510 PAINT (550, 30), 4 7520 LINE (481, 180)-(609, 200), 3, BF 7530 LINE (480, 200)-(480, 150), 2 7540 CIRCLE (465, 150), 15, 2, 0, 1.575 7550 LINE (480, 200)-(635, 200), 2 7560 LINE (635, 200)-(635, 88), 2 7570 CIRCLE (480, 88), 155, 2, 0, 1.575, .5 7580 LINE (480, 10)-(150, 10), 2 7590 LINE (480, 250)-(635, 250), 2 7600 CIRCLE (510, 250), 125, 2, 4.725, 0 7610 LINE (512, 341)-(140, 341), 2 7620 CIRCLE (465, 249), 15, 2, 4.725, 0 7630 LINE (465, 260)-(170, 260), 2 7640 CIRCLE (170, 249), 15, 2, 3.15, 4.725 7650 CIRCLE (140, 250), 125, 2, 3.15, 4.725 7660 LINE (15, 250)-(15, 100), 2 7670 LINE (155, 250)-(155, 150), 2 7680 CIRCLE (170, 150), 15, 2, 1.575, 3.15 7690 LINE (170, 139)-(465, 139), 2 7700 CIRCLE (150, 100), 135, 2, 1.575, 3.15, .665 7710 LINE (16, 150)-(154, 250), 7, BF 7720 CIRCLE (320, 200), 200, 1, 4.01, 5.42, .4 7730 LINE (170, 261)-(465, 261), 1 7740 PAINT (320, 265), 1 7750 PAINT (1, 1), 2 7760 CIRCLE (320, 400), 200, 1, .87, 2.27, .4 7770 LINE (170, 340)-(465, 340), 1 7780 PAINT (320, 330), 1 7790 PALETTE 2, 49: PALETTE 0, 8 7800 LINE (320, 24)-(330, 137), 15, BF 7810 RETURN 7820 REM **** SUB TO DRAW TRACK 'PLANET-X' **** 7830 CLS : SCREEN 9 7840 CIRCLE (580, 50), 50, 2, 0, 1.575 7850 LINE (630, 50)-(630, 120), 2 7860 CIRCLE (580, 115), 50, 2, 4.725, 0 7870 LINE (500, 152)-(582, 152), 2 7880 LINE (582, 13)-(450, 13), 2 7890 CIRCLE (450, 50), 50, 2, 1.575, 3.15 7900 LINE (400, 50)-(400, 220), 2 7910 LINE (400, 220)-(490, 220), 2 7920 LINE (490, 220)-(490, 85), 2 7930 CIRCLE (520, 87), 30, 2, 4.725, 3.15, .3 7940 LINE (500, 96)-(520, 96), 2 7950 LINE (500, 90)-(500, 160), 2 7960 LINE (400, 290)-(400, 310), 2 7970 CIRCLE (450, 310), 50, 2, 3.15, 4.725 7980 LINE (450, 347)-(580, 347), 2 7990 CIRCLE (580, 310), 50, 2, 4.725, 0 8000 LINE (630, 310)-(630, 267), 2 8010 CIRCLE (580, 267), 50, 2, 0, 1.575 8020 LINE (580, 230)-(290, 230), 2 8030 LINE (400, 290)-(490, 290), 2 8040 CIRCLE (520, 290), 30, 2, 3.15, 1.575, .3 8050 LINE (520, 281)-(290, 281), 2 8060 LINE (290, 281)-(290, 230), 2 8070 LINE (180, 281)-(180, 230), 2 8080 LINE (180, 230)-(60, 230), 2 8090 CIRCLE (60, 267), 50, 2, 1.575, 3.15 8100 LINE (10, 267)-(10, 310), 2 8110 CIRCLE (60, 310), 50, 2, 3.15, 4.725 8120 LINE (60, 347)-(230, 347), 2 8130 CIRCLE (230, 310), 50, 2, 4.725, 0 8140 LINE (280, 310)-(280, 160), 2 8150 LINE (180, 281)-(160, 281), 2 8160 CIRCLE (160, 290), 30, 2, 1.575, 0, .3 8170 LINE (190, 292)-(190, 160), 2 8180 LINE (190, 160)-(280, 160), 2 8190 LINE (180, 85)-(280, 85), 2 8200 LINE (280, 85)-(280, 47), 2 8210 CIRCLE (230, 47), 50, 2, 0, 1.575 8220 LINE (230, 10)-(60, 10), 2 8230 CIRCLE (60, 47), 50, 2, 1.575, 3.15 8240 LINE (10, 47)-(10, 115), 2 8250 CIRCLE (60, 115), 50, 2, 3.15, 4.725 8260 LINE (60, 152)-(390, 152), 2 8270 LINE (390, 152)-(390, 94), 2 8280 LINE (390, 94)-(150, 94), 2 8290 CIRCLE (150, 85), 30, 2, 0, 4.725, .3 8300 PAINT (1, 1), 2 8310 LINE (490, 200)-(400, 220), 3, BF 8320 LINE (290, 230)-(310, 280), 3, BF 8330 LINE (190, 160)-(280, 180), 3, BF 8340 LINE (370, 95)-(390, 151), 3, BF 8350 LINE (320, 95)-(330, 151), 15, BF: PALETTE 2, 40: PALETTE 0, 8 8360 DRAW "bm334,123c14" + ARO$ + "br155ta35" + ARO$ 8370 DRAW "bm445,174ta270" + ARO$ + "br140ta315" + ARO$ 8380 DRAW "bm345,255ta180" + ARO$ + "br155ta215" + ARO$ 8390 DRAW "bm235,205ta90" + ARO$ + "br140ta135" + ARO$ 8400 Z = 80 8410 RETURN 8420 REM **** SUB TO DRAW TRACK 'URANUS' **** 8430 CIRCLE (100, 50), 50, 2, 1.575, 3.15 8440 LINE (100, 13)-(580, 13), 2 8450 CIRCLE (580, 50), 50, 2, 0, 1.575 8460 LINE (630, 50)-(630, 190), 2 8470 CIRCLE (530, 190), 100, 2, 3.5, 0, .3 8480 LINE (440, 202)-(419, 190), 2 8490 CIRCLE (350, 210), 80, 2, .5, 3.15, .5 8500 CIRCLE (285, 280), 10, 2, 1.575, 4.725 8510 CIRCLE (290, 210), 20, 2, 3.15, 4.725 8520 LINE (280, 286)-(500, 286), 2 8530 LINE (280, 274)-(500, 274), 2 8540 CIRCLE (495, 280), 10, 2, 4.725, 1.575 8550 PAINT (400, 280), 2 8560 LINE (290, 225)-(560, 225), 2 8570 CIRCLE (558, 283), 80, 2, 4.725, 1.575 8580 LINE (558, 341)-(230, 341), 2 8590 CIRCLE (230, 300), 56, 2, 3.15, 4.725 8600 CIRCLE (144, 300), 30, 2, 0, 1.575 8610 CIRCLE (100, 241), 50, 2, 3.15, 4.725 8620 LINE (100, 278)-(145, 278), 2 8630 LINE (50, 243)-(50, 47), 2 8640 PAINT (0, 0), 2 8650 CIRCLE (160, 200), 15, 2, 3.15, 0 8660 LINE (145, 200)-(145, 90), 2 8670 CIRCLE (170, 90), 25, 2, 1.575, 3.15 8680 LINE (170, 72)-(440, 72), 2 8690 CIRCLE (440, 92), 28, 2, 4.5, 1.575 8700 CIRCLE (346, 198), 171, 2, 1, 3.15, .6 8710 PAINT (440, 90), 2 8720 LINE (320, 14)-(330, 71), 15, BF: PALETTE 0, 9: PALETTE 2, 38 8730 DRAW "bm350,45c14" + ARO$ 8740 DRAW "bm220,200ta270" + ARO$ + "bm220,270ta290" + ARO$ 8750 DRAW "bm500,250ta180" + ARO$ + "br180" + A$ + "br100ta135" + ARO$ 8760 RETURN 8770 PLAY "MLO0": LINE (635, 8)-(535, 3), 4, BF: COL = 0 8780 SIZ = 10: DMG = 0 8790 X = (RND * 10) - 5 + X 8800 Y = (RND * 10) - 5 + Y 8810 FOR L = 1 TO SIZ 8820 IF SND$ = "On" THEN SOUND RND * 200 + 64, .2 8830 IF COL = 0 THEN COL = 4: GOTO 8860 8840 IF COL = 4 THEN COL = 14: GOTO 8860 8850 IF COL = 14 THEN COL = 0: GOTO 8860 8860 CIRCLE (X + 15, Y + 15), L, COL 8870 NEXT 8880 IF CINT(SIZ) = 60 AND SKIL = 0 THEN GOTO 1130 8890 IF CINT(SIZ) = 60 AND KBD$ = CHR$(27) THEN GOTO 1130 8900 IF CINT(SIZ) = 60 AND SKIL > 0 THEN GOTO 6300 8910 IF CINT(SIZ) = 11 THEN SIZ = 60: GOTO 8790 8920 SIZ = SIZ + .1: GOTO 8790 8930 SIZ = 60: DMG = 0 8940 REM **** SUB TO DRAW SECRET CAR 'STORM' **** 8950 PAINT (20, 15), 0, 4 8960 PAINT (45, 15), 0, 4 8970 PAINT (85, 10), 0, 4 8980 PAINT (120, 20), 0, 4 8990 PAINT (15, 15), 15, 0 9000 PAINT (50, 15), 15, 0 9010 PAINT (85, 15), 15, 0 9020 PAINT (120, 15), 15, 0 9030 CIRCLE (12, 10), 2, 8, , , 2: PAINT (12, 10), 8 9040 CIRCLE (12, 20), 2, 8, , , 2: PAINT (12, 20), 8 9050 LINE (13, 8)-(18, 8), 7 9060 LINE (13, 12)-(18, 12), 7 9070 LINE (13, 18)-(18, 18), 7 9080 LINE (13, 22)-(18, 22), 7 9090 CIRCLE (53, 10), 2, 8, , , 2: PAINT (53, 10), 8 9100 CIRCLE (53, 20), 2, 8, , , 2: PAINT (53, 20), 8 9110 LINE (52, 8)-(47, 8), 7 9120 LINE (52, 12)-(50, 12), 7 9130 LINE (52, 18)-(47, 18), 7 9140 LINE (52, 22)-(47, 22), 7 9150 CIRCLE (80, 19), 2, 8, , , .4: PAINT (80, 19), 8 9160 CIRCLE (90, 19), 2, 8, , , .4: PAINT (90, 19), 8 9170 LINE (78, 19)-(78, 14), 8 9180 LINE (82, 19)-(82, 14), 8 9190 LINE (88, 19)-(88, 14), 8 9200 LINE (92, 19)-(92, 14), 8 9210 CIRCLE (115, 11), 2, 8, , , .4: PAINT (115, 11), 8 9220 CIRCLE (125, 11), 2, 8, , , .4: PAINT (125, 11), 8 9230 LINE (113, 11)-(113, 16), 8 9240 LINE (117, 11)-(117, 16), 8 9250 LINE (123, 11)-(123, 16), 8 9260 LINE (127, 11)-(127, 16), 8 9270 SKIL = SKIL / 5 9280 RETURN 9290 END 9300 REM **** SUB TO FIND AND SHOW FINISHING PLACE **** 9310 COLOR 4, 0 9320 A = 0: B = 0: DMG = 0: COL = 0: LINE (175, 145)-(475, 205), 1, BF 9330 FOR X = 180 TO 460 STEP 10 9340 FOR Y = 150 TO 190 STEP 10 9350 IF COL = 0 THEN COL = 15: GOTO 9370 9360 IF COL = 15 THEN COL = 0: GOTO 9370 9370 LINE (X, Y)-(X + 10, Y + 10), COL, BF 9380 NEXT: NEXT 9390 LOCATE 13 9400 FIN = INT((ABS(ET2) / 7 * (SKIL / TRAK)) * 4 / LAPS) 9410 IF FIN < 1 THEN FIN = 1 9420 IF FIN > 10 THEN FIN = 10 9430 IF ET2 < -60 THEN LOCATE , 35: PRINT "TIME UP!": FIN = 10: GOTO 9480 9440 IF FIN = 1 THEN LOCATE , 30: PRINT "YOU WON THE RACE!" 9450 IF FIN = 2 THEN LOCATE , 28: PRINT "YOU MADE A CLOSE SECOND!" 9460 IF FIN = 3 THEN LOCATE , 27: PRINT "YOU FINISH A SLUGISH THIRD!" 9470 IF FIN > 3 THEN LOCATE , 25: PRINT "YOU FINISHED A PITIFUL"; FIN; "th PLACE!" 9480 FOR X = 1 TO 50000!: NEXT: CLS 9490 RETURN 9500 REM **** SUB TO MAKE CAR JUMP **** 9510 C1 = ABS(A / MSPD): Z = 0 9520 C2 = ABS(B / MSPD): W = 0 9530 A = A / MSPD 9540 B = B / MSPD 9550 IF LEFT$(CAR$, 2) = "RO" THEN A = A * 2: B = B * 2 9560 IF LEFT$(CAR$, 2) = "DI" THEN A = A * 1.5: B = B * 1.5 9570 A = A * 2 9580 B = B * 2 9590 IF C1 > C2 THEN D1 = .3: D2 = 0 9600 IF C2 > C1 THEN D2 = .3: D1 = 0 9610 Z = Z + C1: W = W + C2: KBD$ = INKEY$ 9620 IF X + A > 600 OR X + A < 10 THEN A = 0: C1 = 0 9630 IF Y + B > 310 OR Y + B < 10 THEN B = 0: C2 = 0 9640 IF W < 0 OR Z < 0 THEN A = A * MSPD: B = B * MSPD: RETURN 9650 IF D$ = "R" THEN PUT (X + W, Y - Z), DR 9660 IF D$ = "L" THEN PUT (X + W, Y - Z), DL 9670 IF D$ = "U" THEN PUT (X + W, Y - Z), DU 9680 IF D$ = "D" THEN PUT (X + W, Y - Z), DD 9690 IF SND$ = "On" THEN SOUND ABS((Z + W) + 1) * 70, 1 9700 IF SND$ = "Off" THEN FOR L = 1 TO 300: NEXT L 9710 IF D$ = "R" THEN PUT (X + W, Y - Z), DR 9720 IF D$ = "L" THEN PUT (X + W, Y - Z), DL 9730 IF D$ = "U" THEN PUT (X + W, Y - Z), DU 9740 IF D$ = "D" THEN PUT (X + W, Y - Z), DD 9750 C1 = C1 - D1: C2 = C2 - D2 9760 X = X + A 9770 Y = Y + B 9780 GOTO 9610 9790 CLS : SCREEN 9: COLOR 8 9800 PALETTE 15, 0: PALETTE 1, 36: PALETTE 2, 4 9810 PRINT TAB(35); "INSTRUCTIONS": PRINT 9820 PRINT " SMOKE TRAILS:THE SMOKE TRAILS IN EV, FOR THE MOST PART, ERASE ABOUT THE SCREEN LENGTH BEHIND THE CAR. THERE ARE, HOWEVER OCCASIONS WHEN GWBASIC DOSEN'T ROUND A NUMBER PROPERLY AND YOU WILL SEE SMOKE THAT SHOOTS ACCROSS THE SCREEN.": PRINT 9830 PRINT " MENUS:ALL OF THE MEUNS IN EV CAN BE EXITED BY SIMPLY PRESSING ESCAPE. EVEN DURING THE GAME, YOU MAY PRESS ESCAPE AS A 'SELF DESTRUCT' BUTTON. YOU MAY ALSO PRESS ESCAPE AT THE MAIN MENU TO EXIT THE GAME.": PRINT 9840 PRINT " TRACKS:THE TRACKS ARE SET UP SO THAT YOU HAVE AS MANY LIVES AS YOU LIKE BUT EACH TIME YOU DIE OR FAIL TO FINISH A TRACK IN THE GIVEN TIME, YOU MUST START THE TRACK OVER AGAIN. PRESS ESCAPE TO QUIT RACING.": PRINT 9850 PRINT " SKILL LEVEL:THE SKILL LEVEL AFFECTS MANY PARTS OF THE GAME. IT CAUSES THE TIME METER TO RISE MORE QUICKLY, INCREASES DAMAGE GIVEN, AND LOWERS YOU'RE FINISHING POSITION.": PRINT 9860 PRINT " COLOR TRIGGERS:SOME OF THE TRACKS IN EV HAVE 'COLOR TRIGGERS'. THEY ARE COLORED ITEMS ON THE TRACK THAT WHEN YOU TOUCH THEM, MAKES SOMETHING HAPPEN." 9870 PRINT " BLUE (REVERSER):CAUSES YOU'RE VEHICLE TO REVERSE DIRECTION." 9880 PRINT " LIGHT BLUE (JUMPS):MAKES YOUR CAR JUMP. SPEED AFFECTS JUMPING DISTANCE." 9890 PRINT " RED (FIREWALL):ADDS DAMAGE TO YOU'RE CAR." 9900 FOR L = 0 TO 640 9910 X(L) = RND * .3 + .75 9920 Y(L) = 0 9930 NEXT 9940 FOR L = 1 TO 700 9950 FOR X = 0 TO 640 9960 Y(X) = Y(X) + X(X) 9970 IF POINT(X, Y(X)) = 0 THEN PSET (X, Y(X)), INT(RND * 2 + 1) 9980 NEXT 9990 IF INKEY$ <> "" THEN GOTO 1130 10000 NEXT 10010 IF INKEY$ <> "" THEN GOTO 1130 10020 GOTO 10010 10030 CLS : SCREEN 9 10040 COLOR 15 10050 PALETTE 15, 0 10060 PALETTE 1, 32 10070 PRINT "SEE-YOU LATER!!!" 10080 FOR Y = 11 TO 0 STEP -1 10090 FOR X = 140 TO 0 STEP -1 10100 IF POINT(X, Y) = 15 THEN LINE (X + 5, Y + 12)-(X * 5 + 5, Y * 5 + 50), 1: CIRCLE (X * 5 + 5, Y * 5 + 50), 5, 4: CIRCLE (X * 5 + 5, Y * 5 + 50), 2, 4 10110 NEXT: NEXT 10120 LOCATE 10 10130 PALETTE 3, 36: PALETTE 2, 4 10140 A = (RND * 4 - 2) * 4 10150 B = (RND * 4 - 2) * 4 10160 X = RND * 640 10170 Y = RND * 200 + 150 10180 FOR L = 1 TO 1000 *(6-MSPD) 10190 CIRCLE (X, Y), 15, INT(RND * 2 + 2) 10200 X = X + A 10210 Y = Y + B 10220 IF X > 580 THEN A = A - .9 10230 IF X < 60 THEN A = A + .9 10240 IF Y > 280 THEN B = B - .9 10250 IF Y < 270 THEN B = B + .9 10260 NEXT 10270 CLS : SCREEN 0, 0, 0 10280 END