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