'=========================================================================== ' Subject: OLD DRAG RACE SIMULATION GAME Date: 07-14-99 (13:01) ' Author: Adlor de Bard Code: QB, QBasic, PDS ' Origin: aeon@preferred.com Packet: GAMES.ABC '=========================================================================== 1 CLS 3 PRINT TAB(27); "DRAG" 5 PRINT TAB(20); "CREATIVE COMPUTING" 7 PRINT TAB(19); "MORRIS TOWN NEW JERSEY" 10 DIM P(2), E(2), W(2), S(2), X(2), M(2), C(2), B(2), Y(21) 20 DIM Q(2) 30 PRINT : PRINT : PRINT 35 PRINT "WELCOME TO DRAG STRIP." 40 PRINT "WOULD YOU LIKE THE INSTRUCTIONS" 50 INPUT I$ 60 IF I$ = "NO" THEN 110 70 PRINT "YOU MAY RACE AGAINST ONE OF YOUR FRIENDS OR YOU MAY RACE" 80 PRINT "AGAINST NY DRAGSTER. TOO WILL BE ASKED TO DESIGN YOUR" 90 PRINT "OWN MACHINE. SPECIFYING HORSEPOWER. READ END RATIO (X: I)," 180 PRINT "TIRE WIDTH IN INCHES AND TIRE DIAMETER IN FEET." 110 PRINT "DO YOU WANT TO RACE AGAINST ME "; 120 INPUT I$ 130 IF I$ = "NO" THEN 200 140 PRINT "I WILL HAVE CAR #1." 150 P(1) = 600 160 E(1) = 5.9 170 W(1) = 22 100 D(1) = 3.9 190 GOTO 290 200 PRINT "DESIGN CAR #1:" 210 PRINT "HORSEPOWER"; ":" 220 INPUT P(1) 230 PRINT "REAR END RATIO"; ";" 240 INPUT E(1) 250 PRINT "TIRE WIDTH"; ";" 260 INPUT W(1) 270 PRINT "TIRE DIAMETER"; 280 INPUT D(1) 290 PRINT "DESIGN CAR #2:" 300 PRINT "HORSEPOWER="; 310 INPUT P(2) 320 PRINT "REAR END RATIO"; 330 INPUT E(2) 340 PRINT "TIRE WIDTH"; 350 INPUT W(2) 360 PRINT "TIRE DIAMETER"; 370 INPUT D(2) 380 PRINT 390 PRINT "GO!" 400 K1 = 500 410 K2 = l.6 420 K3 = 2 430 K4 = .0006 440 K5 = .00006 450 K6 = .2 460 K7 = 4 478 K8 = .00015 480 Q(1) = 0: Q(2) = 0 490 S(1) = 0: S(2) = 0 500 X(1) = 0: X(2) = 0 510 REM: M IS MASS 520 FOR J = 1 TO 2 530 M(J) = (K1 + K2 * P(J) + K3 * W(J) * D(J) + K7 * D(J) ^ 2) / 32.2 540 REM: C IS DRAG FROM WIND. 550 C(J) = K4 * M(J) ^ (2 / 3) + K8 * W(J) * D(J) 560 REM: B IS THE MAX ACCELERATION WITHOUT BURNING 570 B(J) = 15 + 28 * W(J) * D(J) / ((W(J) + 6) * (D(J) + 1)) 580 REM: Y IS THE SCALE FACTOR FOR RPM V.S. POWER. 590 Y(J) = 3.7 - .0033 * P(J) 600 NEXT J 605 CLS 610 PRINT 620 PRINT 630 PRINT "ELAPSED "; TAB(15); "CAR #1"; TAB(39); "CAR #2" 640 PRINT "TIRE SPEED DISTANCE SPEED DISTANCE" 650 PRINT "(SEC) (MPH) (FT) (MPH) (FT)" 660 PRINT 670 FOR T = O TO 100 680 FOR T1 = 1 TO 100 690 FOR J = 1 TO 2 700 REM: R IS RPM 710 R = 60 * S(K) * E(J) / (3.1415926# * D(J)) 720 REM: LO IS ENGINE TORQUE. 730 LO = (P(J) / 42.5) * (50 + .0078 * (R / Y(J)) - 4E-10 * (R / Y(J)) ^ 3) 740 REM: L1 IS TORQUE FROM FRICTION 750 L1 = P(J) * (K5 * R + K6) 760 REM: R2 IS REAR AXLE TORQUE 770 L2 = E(J) * (LO - L1) 780 REM: F IS FORCE ON ROAD FROM TIRES. 790 F = 2 * L2 / D(J) 800 REM: TEST FOR BURN 810 IF F > M(J) * B(J) THEN 880 820 REM: A= ACCELERATION 830 IF Q(J) <> 0 THEN 860 840 PRINT "Car #"; J; "STOPS BURNING RUBBER" 850 Q(J) = 1 860 A = (F - C(J) * S(J) ^ 2) / M(J) 870 GOTO 900 880 A = B(J) - C(J) * S(J) ^ 2 / M(J) 890 REM: S is Feet in FT/SEC 900 S(J) = S(J) + A * .01 910 REM: X IS DISTANCE IN FT. 920 X(J) = X(J) + S(J) * .01 930 NEXT J 940 REM: TEST FOR FINISH. 950 IF X < 5280 / 4 AND X(2) < 5280 / 4 THEN GOTO 1160 960 IF X(1) > X(2) THEN 1080 970 T3 = (X(2) - 5280 / 4) / S(2) 980 T = T + T1 / l00 - T3 990 X(2) = 5280 / 4 1000 X(1) = X(1) - S(1) * T3 1010 PRINT T; " "; S(1) * 3600 / 5200; " ;X(1)" 1015 PRINT S(2) * 3600 / 5280; " "; X(1) 1020 PRINT TAB(40); "WINNER" 1030 PRINT 1040 PRINT "DO YOU WANT TO TRY AGAIN "; 1050 INPUT I$ 1060 IF I$ = "YES" THEN 110 1070 END 1080 T3 = (X(1) - 5280 / 4) / S(1) 1090 T = T + T1 / 100 - T3 1100 X(1) = 5280 / 4 1110 X(2) = X(2) - S(2) * T3 1120 PRINT T; " "; S(1) * 3600 / 5260; " "; X(1); 1125 PRINT S(2) * 3600 / 5280; " "; X(2) 1130 PRINT TAB(10); "WINNER" 1140 PRINT 1150 GOTO 1040 1160 NEXT T1 1170 PRINT T + 1; " "; S(1) * 3600 / 5280; " "; X(1); 1175 PRINT S(2) * 3600 / 5280; " "; X(2) 1180 NEXT T 1200 END