Listing of file='AUTORACE' on disk='vmedia/more_games.wvd.zip'
# Sector 32, program filename = 'AUTORACE' 0010 REM *AUTORACE* 0015 DEFFN'15 : LOAD DC T#6,"GAMES" 0020 DIM P(2,2),V(2,2),R$(2),S(2),T$(16)64 0030 SELECT PRINT 005(255) 0040 INPUT "DO YOU NEED INSTRUCTIONS",A$ 0050 IF STR(A$,1,1)="Y" THEN 60 : GOTO 220 0060 PRINT HEX(03);"THIS IS REALTIME VECTOR RACING." 0070 PRINT "2 PLAYERS HAVE 4 CONTROLS AND A PANIC BUTTON TO ACCELERATE" 0080 PRINT "(OR DECELERATE) THEIR CARS. ACCELERATION ON THE Y-AXIS IS" 0090 PRINT "4 TIMES AS SLOW AS ON THE X-AXIS." 0100 PRINT : PRINT "CONTROL * CAR 1 * CAR 2" 0110 PRINT "****************************" 0120 PRINT "-X (LEFT) * 0 * 12" 0130 PRINT "+X (RGHT) * 1 * 13" 0140 PRINT "-Y (DOWN) * 2 * 14" 0150 PRINT "+Y (UP) * 3 * 15" 0160 PRINT "PANIC STOP * 4 * 10" : PRINT 0170 FOR I=1 TO 700 : NEXT I 0180 PRINT "TO WIN, A CAR MUST LAND ON ONE OF THE LETTERS IN 'END'. IF ONE" 0190 PRINT "CAR CRASHES, THE OTHER CAR MAY CONTINUE TO THE END." 0200 PRINT ".1 POINT IS DEDUCTED FOR CRASHING, BUT 1 POINT IS ADDED TO THE" 0210 PRINT "SCORE OF THE WINNER." 0220 READ T1 0230 INPUT "TRACK",T : PRINT HEX(03) : IF T>T1 THEN 230 0240 IF T=1 THEN 280 0250 FOR I=1 TO T-1 : FOR J=1 TO 16 0260 READ T1$ : NEXT J 0270 FOR J=1 TO 4 : READ P1 : NEXT J : NEXT I 0280 FOR I=1 TO 15 : READ T$(I) : PRINT T$(I) : NEXT I 0290 READ T$(16) : PRINT T$(16);HEX(01) : PRINT HEX(01); 0300 P8=0 : P9=0 : C9=0 0310 R$(1)="1" : R$(2)="2" 0320 FOR I=1 TO 2 : FOR J=1 TO 2 : READ P(I,J) : NEXT J : NEXT I 0330 FOR I=1 TO 2 : FOR J=1 TO 2 : V(I,J)=0 : NEXT J : NEXT I 0340 FOR I=1 TO 2 0350 GOSUB 760 0360 IF R$(I)="*" THEN 700 0370 FOR J=1 TO 2 0380 P0=INT(P(I,J)) 0390 P(I,J)=P(I,J)+V(I,J) 0400 V0=V0+ABS(P0-INT(P(I,J))) 0410 NEXT J 0420 IF V0=0 THEN 700 0430 V0=0 0440 GOSUB '40(P(I,1),P(I,2),R$(I)) 0450 GOSUB 760 0460 X=INT(P(I,1))+1 : Y=INT(P(I,2))+1 0470 IF X<1 THEN 590 0480 IF X>63 THEN 590 0490 IF Y<1 THEN 590 0500 IF Y>15 THEN 590 0510 C$=STR(T$(Y),X,1) 0520 IF C$="!" THEN 590 0530 IF C$="=" THEN 590 0540 IF C$="E" THEN 660 0550 IF C$="N" THEN 660 0560 IF C$="D" THEN 660 0570 NEXT I 0580 GOTO 340 0590 V(I,1)=0 : V(I,2)=0 : R$(I)="*" 0600 GOSUB '40(P(I,1),P(I,2),"*") 0610 C=C+1 : PRINT "*";HEX(08); 0620 S(I)=S(I)-.1 0630 IF R$(1)<>"*" THEN 700 0640 IF R$(2)<>"*" THEN 700 0650 GOTO 1010 0660 PRINT : PRINT TAB(63);HEX(0C) 0670 PRINT I;"WINS!" 0680 S(I)=S(I)+1 0690 GOTO 1010 0700 NEXT I 0710 IF INT(P(1,1))<>INT(P(2,1)) THEN 340 0720 IF INT(P(1,2))<>INT(P(2,2)) THEN 340 0730 PRINT : PRINT TAB(63);HEX(0C) 0740 PRINT "COLLISION BETWEEN CARS!" 0750 GOTO 1010 0760 KEYIN A$,770,780 0770 RETURN 0780 A=VAL(A$) 0790 I1=1 0800 IF A<4 THEN 840 0810 IF A<12 THEN 950 0820 I1=2 0830 A=A-12 0840 J1=1 0850 IF A<2 THEN 880 0860 J1=2 0870 A=A-2 0880 IF A=1 THEN 900 0890 A=-1 0900 IF J1=1 THEN 930 0910 A=-A/4 0920 IF R$(I1)="*" THEN 940 0930 V(I1,J1)=V(I1,J1)+A/2 0940 RETURN 0950 IF A<>4 THEN 980 0960 V(1,1)=0 : V(1,2)=0 0970 RETURN 0980 IF A<>10 THEN 1000 0990 V(2,1)=0 : V(2,2)=0 1000 RETURN 1010 FOR I=1 TO 500 : NEXT I 1020 RESTORE 1030 PRINT HEX(03);"SCORE: ";S(1);"TO";S(2) 1040 FOR I=1 TO 100 : NEXT I 1050 KEYIN A$,1050,1050 1060 GOTO 220 1070 DATA 3 1080 DATA "!============================================================!" 1090 DATA "!1 ===============!" 1100 DATA "!2 ===============!" 1110 DATA "!===================================== ==============!" 1120 DATA "!=================================== ===============!" 1130 DATA "!========================== =====================!" 1140 DATA "!=================== ==========================!" 1150 DATA "!=========== ================================!" 1160 DATA "!==== ======================================!" 1170 DATA "!==== ==========================================!" 1180 DATA "!==== ============================ E" 1190 DATA "!===== ==================== N" 1200 DATA "!========= ======== D" 1210 DATA "!================= ===============!" 1220 DATA "!======================== =================!" 1230 DATA "!============================================================!" 1240 DATA 1,1,1,2 1250 DATA "!=====================================================END====!" 1260 DATA "!================ ======= 1 2 ============== ====!" 1270 DATA "!=========== ==== ============= ====!" 1280 DATA "!===== ====== === ============ ====!" 1290 DATA "!== =========== === ========== ===!" 1300 DATA "!== ========== ==== ======== ==!" 1310 DATA "!= ======= ====== ======== ==!" 1320 DATA "!== ====== === ====== ===!" 1330 DATA "==== ======= ======= ===!" 1340 DATA "===== ========== ======== ===!" 1350 DATA "!====== =========================== ===!" 1360 DATA "!======== =================== =====!" 1370 DATA "!============= ....!..========= =======!" 1380 DATA "!================ ..!!!.... ===============!" 1390 DATA "!==================== ...... ==================!" 1400 DATA "!============================================================!" 1410 DATA 36,1,38,1 1420 DATA "!============================================================!" 1430 DATA "!1 ================= E" 1440 DATA "!2 ============= N" 1450 DATA "!============ ======= D" 1460 DATA "!=============== = =====================!" 1470 DATA "!================= ======================!" 1480 DATA "!================= ======================!" 1490 DATA "!=============== = ====================!" 1500 DATA "!============ ========= =================!" 1510 DATA "!======= ================= ============!" 1520 DATA "!=== ======================= =========!" 1530 DATA "!=== =========================== =========!" 1540 DATA "!===== ======================= ===========!" 1550 DATA "!======== ==============!" 1560 DATA "!============== ====================!" 1570 DATA "!============================================================!" 1580 DATA 1,1,1,2 1590 DEFFN'40(X9,Y9,P9$) 1600 IF Y9>=0 THEN 1630 1610 Y9=Y9+15 1620 GOTO 1600 1630 X8=FNI(X9-P8) 1640 Y8=FNI(Y9-P9) 1650 IF ABS(X8)+ABS(Y8)=0 THEN 1920 1660 C9=C9+ABS(X8)+ABS(Y8) 1670 IF C9<240 THEN 1720 1680 C9=0 1690 P8=0 1700 PRINT HEX(0C) 1710 GOTO 1600 1720 P8=P8+X8 1730 P9=P9+Y8 1740 IF X8=0 THEN 1820 1750 C9$=HEX(09) 1760 IF X8>0 THEN 1790 1770 C9$=HEX(08) 1780 X8=-X8 1790 FOR I9=1 TO X8 1800 PRINT C9$; 1810 NEXT I9 1820 IF Y8=0 THEN 1900 1830 C9$=HEX(0A) 1840 IF Y8>0 THEN 1870 1850 C9$=HEX(0C) 1860 Y8=-Y8 1870 FOR I9=1 TO Y8 1880 PRINT C9$; 1890 NEXT I9 1900 PRINT P9$;HEX(08); 1910 C=C+LEN(P9$) 1920 RETURN 1930 DEFFNI(Z9)=INT(Z9)