image of READY prompt

Wang2200.org

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)