'=========================================================================== ' nerdSoft presents: ' Ford Pinto! ' { http://nerdsoft.iwarp.com } '=========================================================================== DIM ColArray%(3) ColArray%(1) = 15 ColArray%(2) = 8 ColArray%(3) = 7 ScreenNo% = 12 SELECT CASE ScreenNo% CASE 1 XReso% = 320 YReso% = 200 CASE 2 XReso% = 640 YReso% = 200 CASE 7 XReso% = 320 YReso% = 200 CASE 8 XReso% = 640 YReso% = 200 CASE 9 XReso% = 640 YReso% = 350 CASE 10 XReso% = 640 YReso% = 350 CASE 11 XReso% = 640 YReso% = 480 CASE 12 XReso% = 640 YReso% = 480 CASE 13 XReso% = 320 YReso% = 200 CASE ELSE PRINT "@#!* Unsupported graphics mode: "; ScreenNo% END END SELECT C1 = 1 Dots% = 300 L = 0 DIM XPos%(Dots%) DIM YPos%(Dots%) RANDOMIZE TIMER FOR Init% = 1 TO Dots% YPos%(Init%) = INT(RND * YReso%) + 1 XPos%(Init%) = INT(RND * XReso%) + 1 NEXT Init% SCREEN ScreenNo% DO FOR TakeDot% = 1 TO Dots% PSET (XPos%(TakeDot%), YPos%(TakeDot%)), 5 YPos%(TakeDot%) = YPos%(TakeDot%) + INT(RND * 5) XRandom% = INT(RND * 6) + 1 IF XRandom% > 3 THEN XRandom% = 3 - XRandom% XPos%(TakeDot%) = XPos%(TakeDot%) + XRandom% IF YPos%(TakeDot%) > YReso% - 1 THEN YPos%(TakeDot%) = 1 XPos%(TakeDot%) = INT(RND * XReso%) + 1 END IF FOR delay% = 1 TO 2000: NEXT delay% Col% = ColArray%(INT(RND * 3) + 1) PSET (XPos%(TakeDot%), YPos%(TakeDot%)), C1 C1 = C1 + 1 IF C1 > 14 THEN C1 = 1 END IF NEXT TakeDot% COLOR 12 L = L + 1 LOCATE 8, 30: PRINT "nerdSoft Presents:" IF L <= 1 THEN SLEEP 1 COLOR 10 LOCATE 11, 30: PRINT "------------------" LOCATE 12, 35: PRINT "F": FOR dl = 1 TO 30000: NEXT dl LOCATE 12, 36: PRINT "o": FOR dl = 1 TO 30000: NEXT dl LOCATE 12, 37: PRINT "r": FOR dl = 1 TO 30000: NEXT dl LOCATE 12, 38: PRINT "d": FOR dl = 1 TO 30000: NEXT dl LOCATE 12, 39: PRINT "P": FOR dl = 1 TO 30000: NEXT dl LOCATE 12, 40: PRINT "i": FOR dl = 1 TO 30000: NEXT dl LOCATE 12, 41: PRINT "n": FOR dl = 1 TO 30000: NEXT dl LOCATE 12, 42: PRINT "t": FOR dl = 1 TO 30000: NEXT dl LOCATE 12, 43: PRINT "o": FOR dl = 1 TO 30000: NEXT dl END IF COLOR 10 LOCATE 11, 30: PRINT "-------@@@@-------" LOCATE 12, 31: PRINT "Ford Pinto WinME" LOCATE 13, 30: PRINT "-------@@@@-------" COLOR 7 LOCATE 26, 4: PRINT "Ported to WinME by Jerry" LOCATE 27, 4: PRINT "Lead Coder : Kevin Lipe" LOCATE 28, 4: PRINT "http://nerdsoft.iwarp.com/" COLOR 3 LOCATE 16, 58: PRINT "*-#-------------#-*" LOCATE 18, 58: PRINT "*-#-------------#-*" LOCATE 24, 58: PRINT "*-#-------------#-*" COLOR 14 LOCATE 17, 60: PRINT "GAME - CONTROLS" LOCATE 19, 60: PRINT "<- - FOR LEFT" LOCATE 20, 60: PRINT "-> - FOR RIGHT" LOCATE 21, 60: PRINT "I - FOR ACCEL." LOCATE 22, 60: PRINT "D - FOR BRAKE." LOCATE 23, 60: PRINT "Q - TO QUIT." LOOP WHILE INKEY$ = "" SLEEP 1 REPLAY: LEVEL = 49 CLS COLOR 12 LOCATE 5, 15 INPUT "Bus Driver Registration: ", NAME$ CLS LOCATE 12, 12: PRINT NAME$; " Difficulty Level:" LOCATE 13, 12: PRINT "1. You're A Pansy!" LOCATE 14, 12: PRINT "2. Pretty Normal " LOCATE 15, 12: PRINT "3. Really Freakin' Hard" LOCATE 16, 12: INPUT LVL SELECT CASE LVL CASE IS = 1 LEVEL = 53 CASE IS = 2 LEVEL = 51 CASE IS = 3 LEVEL = 45 CASE ELSE LEVEL = 49 END SELECT CLS SCREEN 1 RANDOMIZE TIMER PALETTE 1, 14 'CAR PALETTE 2, 5 'BORDERS PALETTE 3, 7 CAR$ = "C1 D15 R10 U15 L10 F2 R6 E2 G2 D5 L6 U5 D5 L2 R10 L1 D8 L2 U8 L4 D8 L2 U8" RCAR$ = "C2 D15 R10 U15 L10 F2 R6 E2 G2 D5 L6 U5 D5 L2 R10 L1 D8 L2 U8 L4 D8 L2 U8" CARBLACK$ = "C0 D15 R10 U15 L10 F2 R6 E2 G2 D5 L6 U5 D5 L2 R10 L1 D8 L2 U8 L4 D8 L2 U8" X = 105 Y = 175 SPEED = 3000 '~~~~~~~~~~~~~~~~~~~~~~~~~~~ BORDER'S LINE (98, 5)-(100, 195), 2, BF LINE (228, 5)-(230, 195), 2, BF '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ MIDDLE LINE OF THE ROAD LINE (162, 5)-(164, 200), 0, BF, 12 '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BLACK IN GRAY MIDDLE LINE Y1 = 10: Y2 = 15 LINE (162, Y1)-(164, Y2), 3, BF '~~~~~~~~~~~~~~~~~~~~~ GRAY LINE (162, Y1 + 30)-(164, Y2 + 30), 3, BF LINE (162, Y1 + 60)-(164, Y2 + 60), 3, BF LINE (162, Y1 + 90)-(164, Y2 + 90), 3, BF LINE (162, Y1 + 120)-(164, Y2 + 120), 3, BF LINE (162, Y1 + 150)-(164, Y2 + 150), 3, BF LINE (162, Y1 + 180)-(164, Y2 + 180), 3, BF PRESET (X, Y) '~~~~~~~~~~~~~~~~~~~ INITIAL POSITION DRAW CAR$ '~~~~~~~~~~~~~~~~~~ DRAWING THE CAR AT THE ABOVE POSITION RPOSX = INT(RND * 205) + 1'~~~~~~~~~~~~~ MIN RANGE OF X=102 & MAX 206 RPOSY = 1 RSPEED = 1 GRY = 159 TIMER ON 1 : DO ON TIMER(LEVEL) GOSUB SEND B: key$ = INKEY$ FOR NOTHING = 1 TO SPEED NEXT NOTHING LINE (98, 5)-(100, 195), 2, BF LINE (228, 5)-(230, 195), 2, BF LINE (162, 5)-(164, 200), 0, BF '~~~~~ MIDDLE LINE (162, Y1)-(164, Y2), 3, BF '~~~~~~ GRAY LINE (162, Y1 + 30)-(164, Y2 + 30), 3, BF LINE (162, Y1 + 60)-(164, Y2 + 60), 3, BF LINE (162, Y1 + 90)-(164, Y2 + 90), 3, BF LINE (162, Y1 + 120)-(164, Y2 + 120), 3, BF LINE (162, Y1 + 150)-(164, Y2 + 150), 3, BF LINE (162, Y1 + 180)-(164, Y2 + 180), 3, BF Y1 = Y1 + 1: Y2 = Y2 + 1 IF Y1 > 40 THEN Y1 = 10: Y2 = 15 END IF IF key$ = "I" OR key$ = "i" THEN SPEED = SPEED - 100 IF SPEED < 100 THEN SPEED = 100 END IF ELSEIF key$ = "D" OR key$ = "d" THEN SPEED = SPEED + 100 IF SPEED > 6000 THEN SPEED = 6000 END IF ELSE SPEED = SPEED END IF IF (RPOSX < 102 OR RPOSX > 216) THEN AGAIN: IF (RPOSX < 102) THEN RANDOMIZE TIMER RPOSX = INT(RND * 216) + 1 IF RPOSX < 102 THEN GOTO AGAIN END IF ELSE RPOSX = 216 END IF END IF PRESET (RPOSX, RPOSY - RSPEED) DRAW CARBLACK$ PRESET (RPOSX, RPOSY) DRAW RCAR$ RPOSY = RPOSY + RSPEED IF RPOSY > 250 THEN RANDOMIZE TIMER RPOSX = RND * 215 + 1 RPOSY = 1 END IF LINE (10, 20)-(34, 160), 4, B LINE (11, GRY)-(33, GRY), 1 LINE (11, GRY + 1)-(33, GRY + 1), 0 UI = UI + 1 IF UI >= 100 THEN UI = 0 GRY = GRY - 1 IF GRY <= 20 THEN GRY = 20 CLS GOTO WIN END END IF END IF '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ LEFT '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ IF key$ = CHR$(0) + "K" THEN PRESET (X, Y) DRAW CARBLACK$ X = X - 4 IF X < 102 THEN X = 102 END IF IF X < 166 AND X > 161 THEN LET X = 149 END IF PRESET (X, Y) DRAW CAR$ '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ RIGHT '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ELSEIF key$ = CHR$(0) + "M" THEN PRESET (X, Y) DRAW CARBLACK$ X = X + 4 IF X > 216 THEN X = 216 END IF IF X > 150 AND X < 155 THEN LET X = 167 END IF PRESET (X, Y) DRAW CAR$ '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ QUIT '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ELSEIF key$ = "Q" OR key$ = "q" THEN CLS SCREEN 2 SCREEN 0 DO COLOR 10 LOCATE 12, 22 PRINT "BYE... "; NAME$; ". Thank You For Playing Ford Pinto!" SLEEP 3 LOOP WHILE INKEY$ = "" END END IF RXR = RPOSX + 12 UXR = X + 12 RYR = RPOSY + 14 IF (Y = RYR) AND ((RPOSX <= X AND X <= RXR) OR (RPOSX <= UXR AND UXR <= RXR)) THEN CROS = 1: CROS1 = 2 FOR S = 1 TO 16 CIRCLE (X + 5, Y + 7), S, CROS FOR ASD = 1 TO 10000 NEXT ASD SWAP CROS, CROS1 NEXT S CLS PRESET (X, Y) DRAW CAR$ RPOSY = 1 RPOSX = INT(RND * 205) + 1 IF (RPOSX < 102 OR RPOSX > 216) THEN GAIN: IF (RPOSX < 102) THEN RANDOMIZE TIMER RPOSX = INT(RND * 216) + 1 IF RPOSX < 102 THEN GOTO GAIN END IF ELSE RPOSX = 216 END IF END IF END IF GOTO B LOOP WHILE key$ = "" SEND: CLS SCREEN 2 SCREEN 0 COLOR 12 DO LOCATE 9, 13: PRINT " GAME--OVER"; "" LOCATE 10, 10: PRINT "YOU ARE A LOSER "; NAME$ LOCATE 11, 10: INPUT "WISH TO CONTINUE ?(Y/N): ", ANS$ IF ANS$ = "Y" OR ANS$ = "y" THEN GOTO REPLAY END IF IF ANS$ = "N" OR ANS$ = "n" THEN GOTO FINISH END IF LOOP WHILE INKEY$ = "" END RETURN WIN: TIMER OFF SCREEN 2 SCREEN 0 COLOR 3 DO LOCATE 10, 27: PRINT NAME$; " YOU WIN !" LOCATE 12, 27: INPUT "WISH TO CONTINUE ?(Y/N): ", ANS$ IF ANS$ = "Y" OR ANS$ = "y" THEN GOTO REPLAY END IF IF ANS$ = "N" OR ANS$ = "n" THEN GOTO FINISH END IF LOOP WHILE INKEY$ = "" FINISH: END