DECLARE SUB again (x!) DECLARE SUB summer.day () DECLARE SUB summer.nite () DECLARE SUB winter.day () DECLARE SUB Race () DECLARE SUB nitedraw () DECLARE SUB day1draw () SCREEN 13 DIM SHARED lap DIM SHARED lap2 DIM SHARED lap3 FOR y = 1 TO 5 FOR x = 1 TO 5 READ c PSET (x, y), c NEXT NEXT DATA 0,2,2,2,0 DATA 2,2,2,2,2 DATA 0,2,2,2,0 DATA 0,0,6,0,0 DATA 0,6,6,6,0 DIM SHARED Tree%(50) GET (1, 1)-(10, 5), Tree% CLS FOR y = 1 TO 5 FOR x = 1 TO 10 READ c PSET (x, y), c NEXT NEXT DATA 0,0,0,0,0,0,0,0,0,0 DATA 0,0,4,4,4,4,4,4,0,0 DATA 0,4,4,4,4,4,4,4,4,0 DATA 0,4,4,4,4,4,4,4,4,0 DATA 0,0,7,0,0,0,0,7,0,0 DIM SHARED RedCar%(50) GET (1, 1)-(10, 5), RedCar% CLS FOR y = 1 TO 5 FOR x = 1 TO 10 READ c PSET (x, y), c NEXT NEXT DATA 0,0,0,0,0,0,0,0,0,0 DATA 0,0,2,2,2,2,2,2,0,0 DATA 0,2,2,2,2,2,2,2,2,0 DATA 0,2,2,2,2,2,2,2,2,0 DATA 0,0,7,0,0,0,0,7,0,0 DIM SHARED GrnCar%(50) GET (1, 1)-(10, 5), GrnCar% CLS FOR y = 1 TO 5 FOR x = 1 TO 10 READ c PSET (x, y), c NEXT NEXT DATA 0,0,0,0,0,0,0,0,0,0 DATA 0,0,1,1,1,1,1,1,0,0 DATA 0,1,1,1,1,1,1,1,1,0 DATA 0,1,1,1,1,1,1,1,1,0 DATA 0,0,7,0,0,0,0,7,0,0 DIM SHARED BlueCar%(50) GET (1, 1)-(10, 5), BlueCar% CLS date = VAL(LEFT$(DATE$, 2)) time = VAL(LEFT$(TIME$, 2)) IF time > 7 AND time < 20 AND date > 4 AND date < 9 THEN summer.day IF time <= 7 OR time >= 20 AND date > 4 AND date < 9 THEN summer.nite IF date <= 4 OR date >= 9 THEN winter.day Race IF lap = 3 THEN LOCATE 20, 1: PRINT "Red wins!" IF lap2 = 3 THEN LOCATE 20, 1: PRINT "Blue wins!" IF lap3 = 3 THEN LOCATE 20, 1: PRINT "Green wins!" again (0) SUB again (x) CLS IF x = 1 THEN PRINT "You hit a car!" IF x = 2 THEN PRINT "You hit a tree!" x = 20 DO LOCATE 2, 1: PRINT "Race again" LOCATE 3, 1: PRINT " Yes No" LOCATE 4, 1: PRINT "Press 5 to confirm selection." SELECT CASE INKEY$ CASE IS = "4" x = 20 CASE IS = "6" x = 120 CASE IS = "5" IF x = 20 THEN RUN ELSE END END SELECT PUT (x, 17), BlueCar% LOOP END SUB SUB Race x = 299 x2 = 299 x3 = 309 lane = 2 go = 1 RANDOMIZE TIMER badcar = INT(RND * 250 + 1) DO SOUND 100, 1 'Check For Crashes IF lane > 2 OR lane < 1 THEN BEEP: again (2) IF x2 > x AND x2 < (x + 10) AND lane = 1 THEN BEEP: again (1) IF x2 < x AND x2 > (x - 10) AND lane = 1 THEN BEEP: again (1) IF x2 > x3 AND x2 < (x3 + 10) AND lane = 1 THEN BEEP: again (1) IF x2 < x3 AND x2 > (x3 - 10) AND lane = 1 THEN BEEP: again (1) IF x > x3 AND x < (x3 + 10) AND lane = 1 THEN BEEP: gout = 1: x3 = 700 IF x < x3 AND x > (x3 - 10) AND lane = 1 THEN BEEP: gout = 1: x3 = 700 IF x2 > badcar AND x2 < (badcar + 10) AND lane = 2 THEN BEEP: again (1) PUT (badcar, 41), RedCar% RANDOMIZE TIMER x = x - INT(RND * 3) IF go = 1 THEN x2 = x2 - INT(RND * 3) IF gout = 0 THEN x3 = x3 - INT(RND * 3) IF x <= 0 THEN lap = lap + 1: x = 309 IF x2 <= 0 THEN lap2 = lap2 + 1: x2 = 309: badcar = INT(RND * 100 + 1) IF x3 <= 0 THEN lap3 = lap3 + 1: x3 = 309 IF lap = 3 THEN EXIT DO IF lap2 = 3 THEN EXIT DO IF lap3 = 3 THEN EXIT DO LINE (0, 30)-(319, 50), 8, BF FOR y = 0 TO 300 STEP 20 LINE (y, 40)-(y + 20, 40), 14 NEXT PUT (x, 31), RedCar% IF gout = 0 THEN PUT (x3, 31), GrnCar% IF lane = 1 THEN PUT (x2, 31), BlueCar% IF lane = 2 THEN PUT (x2, 43), BlueCar% SELECT CASE INKEY$ CASE IS = "8" lane = lane - 1 CASE IS = "2" lane = lane + 1 CASE IS = "4" go = 1 CASE IS = "6" go = 0 END SELECT LOCATE 15: PRINT "Red car:"; (lap + 1); "/ 3" LOCATE 16: PRINT "Green car:"; (lap3 + 1); "/ 3" LOCATE 17: PRINT "Blue car:"; (lap2 + 1); "/ 3" LOCATE 19 IF x2 < x AND x2 < x3 AND lap2 >= lap AND lap2 >= lap3 THEN PRINT "You are winning!" ELSE PRINT "You are losing." END IF LOOP END SUB SUB summer.day LINE (0, 0)-(319, 20), 9, BF LINE (0, 20)-(319, 199), 2, BF FOR x = 1 TO 309 STEP 10 PUT (x, 57), Tree% PUT (x, 22), Tree% NEXT END SUB SUB summer.nite FOR a = 1 TO 50 RANDOMIZE TIMER x = INT(RND * 300 + 1) y = INT(RND * 20 + 1) PSET (x, y), 15 NEXT END SUB SUB winter.day FOR y = 1 TO 30 FOR x = 1 TO 310 c = INT(RND * 2 + 1) IF c = 2 THEN c = 15 PSET (x, y), c NEXT NEXT END SUB