Compucolor.org – Virtual Media

Listing of file='DRAG.BAS;01' on disk='vmedia/blackjack-sector.ccvf'

100 REM  ** DRAG - MODIFIED JAN 23,79 **
105 FOR I= 1TO PEEK (33209):X= RND (1):NEXT I
110 DIM  P(2),E(2),W(2),S(2),X(2),M(2),C(2),B(2),Y(2),Q(2)
120 DATA 2,254,246,119,110,255
130 FOR I= 1TO 6:READ J
140 A$= A$+ CHR$ (J):NEXT
150 PLOT 6,3,14,12,3,14,3
160 PRINT "WELCOME TO THE DRAG STRIP"
170 PRINT :PLOT 6,2
180 PRINT "YOU MAY RACE AGAINST ONE OF YOUR FRIENDS OR MY SUPERCHARGED"
190 PRINT "DRAGSTER. YOU WILL BE ASKED TO DESIGN YOUR OWN MACHINE BY"
200 PRINT "SPECIFYING THE FOLLOWING:"
210 PRINT :PLOT 6,5
220 PRINT TAB( 15);"HORSEPOWER"
230 PRINT TAB( 15);"REAR END RATIO(X:1)"
240 PRINT TAB( 15);"TIRE WIDTH IN INCHES"
250 PRINT TAB( 15);"TIRE DIAMETER IN INCHES"
260 PRINT :PLOT 6,1
270 INPUT "WOULD YOU LIKE TO RACE AGAINST ME (Y OR N)? ";I$
280 L= 11:K= .681818
290 PLOT 6,3,12,3,0,4
300 IF LEFT$ (I$,1)= "N"THEN 350
310 PRINT "I WILL HAVE CAR #1."
320 PRINT
330 P(1)= 665:E(1)= 5.51:W(1)= 23.1:D(1)= 3.9
340 GOTO  410
350 PRINT "DESIGN CAR #1:"
360 INPUT "HORSEPOWER=";P(1)
370 INPUT "REAR END RATIO=";E(1)
380 INPUT "TIRE WIDTH=";W(1)
390 INPUT "TIRE DIAMETER=";D(1):D(1)= D(1)/ 12
400 PRINT :PLOT 6,6
410 PRINT "DESIGN CAR #2:"
420 INPUT "HORSEPOWER=";P(2)
430 INPUT "REAR END RATIO=";E(2)
440 INPUT "TIRE WIDTH=";W(2)
450 INPUT "TIRE DIAMETER=";D(2):D(2)= D(2)/ 12
460 REM  DRAW THE TRACK
470 PLOT 15,12,30,23,11,3,0,6,11,30,16
480 REM  BEGIN THE RACE
490 PLOT 3,0,3,6,2,31,14
500 PRINT "GO!";
510 GOSUB 1820
520 PLOT 13,15:PRINT "   "
530 REM  PRINT HEADINGS
540 PLOT 3,0,1,6,1
550 PRINT "CAR"
560 PRINT " 1 ";A$
570 PLOT 6,56,3,62,2:PRINT "  "
580 PLOT 6,2,3,0,3
590 PRINT "CAR"
600 PRINT " 2 ";A$
610 PLOT 6,56,3,62,4:PRINT "  "
620 PLOT 3,0,8
630 K1= 500:K2= 1.6:K3= 2:K4= .0006:K5= .00006
640 K6= .2:K7= 4:K8= .00015
650 FOR  I= 1 TO  2
660 Q(I)= 0: S(I)= 0: X(I)= 0
670 NEXT  I
680 REM : M IS MASS
690 FOR  J= 1 TO  2
700 M(J)= (K1+ K2* P(J)+ K3* W(J)* D(J)+ K7* D(J)* D(J))/ 32.2
710 REM : C IS DRAG FROM WIND
720 C(J)= K4* M(J)^ (2/ 3)+ K8* W(J)* D(J)
730 REM : B IS THE MAX ACCELERATION WITHOUT BURNING
740 B(J)= 15+ 28* W(J)* D(J)/ ((W(J)+ 6)* (D(J)+ 1))
750 REM : Y IS THE SCALE FACTOR FOR RPM VS POWER
760 Y(J)= 3.7- .0033* P(J)
770 NEXT  J
780 PLOT 6,4
790 PRINT "ELAPSED";
800 PLOT 6,1:PRINT TAB( 17);"CAR #1";:PLOT 6,2:PRINT TAB( 48);"CAR #2"
810 PLOT 6,4
820 PRINT  " TIME     SPEED          DISTANCE         SPEED         DISTANCE"
830 PRINT :PLOT 3,0,10
840 PRINT "(SEC)     (MPH)            (FT)           (MPH)           (FT)"
850 PLOT 6,3
860 FOR  T= 0 TO  100 STEP  1
870 FOR  T1= 1 TO  100 STEP  20
880 FOR  J= 1 TO  2
890 REM : R IS RPM
900 R= 60* S(J)* E(J)/ (3.14159* D(J))
910 REM : L0 IS ENGINE TORQUE
920 L0= (P(J)/ 42.5)* (50+ .0078* (R/ Y(J))- 4.E- 10* (R/ Y(J))^ 3)
930 REM : L1 IS TORQUE FROM FRICTION
940 L1= P(J)* (K5* R+ K6)
950 REM : L2 IS REAR AXLE TORQUE
960 L2= E(J)* (L0- L1)
970 REM : F IS FORCE ON ROAD FROM TIRES
980 F= 2* L2/ D(J)
990 REM : TEST TO BURN
1000 IF  F> M(J)* B(J) THEN  1100
1010 REM  : A IS ACCELERATION
1020 IF  Q(J) < >  0 THEN  1080
1030 PLOT 6,6,3,0,L
1040 PRINT "CAR #";J;" STOPS BURNING RUBBER"
1050 PLOT 13,15
1060 PLOT 6,3,15
1070 L= L+ 1:Q(J)= 1
1080 A= (F- C(J)* S(J)* S(J))/ M(J)
1090 GOTO  1120
1100 A= B(J)- C(J)* S(J)* S(J)/ M(J)
1110 REM : S IS SPEED IN FT/SEC
1120 S(J)= S(J)+ A* .2
1130 REM : X IS DISTANCE IN FT
1140 X(J)= X(J)+ S(J)* .2
1150 NEXT  J
1160 REM : TEST FOR FINISH
1170 IF X(1)< 1320AND X(2)< 1320THEN 1590
1180 IF  X(1)> X(2) THEN  1440
1190 REM  CAR #2 THE WINNER (OR A TIE)
1200 T3= (X(2)- 1320)/ S(2)
1210 T= T+ T1/ 100- T3
1220 X(2)= 1320
1230 X(1)= X(1)- S(1)* T3
1240 PLOT 3,0,L
1250 PRINT T;TAB( 8);S(1)* K;TAB( 24);X(1);TAB( 40);S(2)* K;TAB( 55);X(2)
1260 L= L+ 1
1270 GOSUB 1720
1280 PLOT 14,6,6,31,3,45,27
1290 IF X(1)< > X(2)THEN 1340
1300 PLOT 3,32,27:PRINT "A TIE!"
1310 GOSUB 1820
1320 PLOT 15,14,13,3,32,27:PRINT "A TIE!"
1330 GOTO 1380
1340 GOSUB 1820
1350 PLOT 15,14,13,3,45,27
1360 PRINT "THE WINNER!"
1370 REM  ANOTHER GAME?
1380 PLOT 6,2
1390 PRINT "DO YOU WANT TO TRY AGAIN";
1400 INPUT  I$
1410 PLOT 12,3,0,14
1420 IF LEFT$ (I$,1)= "Y"THEN 270
1430 GOTO 1680
1440 REM  CAR #1 THE WINNER
1450 T3= (X(1)- 1320)/ S(1)
1460 T= T+ T1/ 100- T3
1470 X(1)= 1320
1480 X(2)= X(2)- S(2)* T3
1490 PLOT 3,0,L
1500 PRINT T;TAB( 8);S(1)* K;TAB( 24);X(1);TAB( 40);S(2)* K;TAB( 55);X(2)
1510 L= L+ 1
1520 GOSUB 1720
1530 PLOT 14,6,6,31,3,12,27
1540 PRINT "THE WINNER!"
1550 FOR I= 1TO 1000:NEXT I
1560 PLOT 15,14,13,3,12,27
1570 PRINT "THE WINNER!"
1580 GOTO 1380
1590 NEXT  T1
1600 IF L< 25THEN 1630
1610 FOR I= 11TO 25:PLOT 3,0,I,11:NEXT
1620 L= 11
1630 PLOT 3,0,L
1640 PRINT T+ 1;TAB( 8);S(1)* K;TAB( 24);X(1);TAB( 40);S(2)* K;TAB( 55);X(2)
1650 L= L+ 1
1660 GOSUB 1720
1670 NEXT  T
1680 LOAD "MENU":RUN
1690 PRINT "COME AGAIN!"
1700 FOR I= 1TO 1000:NEXT
1710 END
1720 PLOT 6,1,3,0,2
1730 PRINT " 1";
1740 PRINT TAB( INT (X(1)/ 23.5)+ 3);A$
1750 PLOT 6,56,3,62,2:PRINT "  "
1760 PLOT 6,2,3,0,4
1770 PRINT " 2";
1780 PRINT TAB( INT (X(2)/ 23.5)+ 3);A$
1790 PLOT 6,56,3,62,4:PRINT "  "
1800 PLOT 6,3
1810 RETURN
1820 FOR I9= 1TO 400:NEXT I9:RETURN