1: SHIELDS = 1 2: 1 CLS 3: COLOR 4 4: PRINT " Asteroid Racer" 5: COLOR 7 6: PRINT "The objective is to dodge the rocks in your rocket." 7: PRINT "1 Difficulty is very fast, 2000 is very slow." 8: PRINT "Your shields can sustain one hit, after which a" 9: PRINT "direct hit will be fatal." 10: PRINT "Use the numeric keypad to maneuver left(4) and right(6)" 11: PRINT "Press up(8) and down(2) to speed up or down, respectively." 12: 2 INPUT "WHAT LEVEL WOULD YOU LIKE TO PLAY (1-2000)?"; Level 13: IF Level < 1 THEN GOTO 1 14: IF Level > 2000 THEN GOTO 1 15: 16: CHOOSE: 17: CLS 18: SCREEN 0 19: COLOR 20 20: 3 PRINT "Pick Rocket Type:" 21: COLOR 15 22: 4 PRINT "A:HP-2E Double Booster "; CHR$(19) 23: 5 PRINT "B:TORI99 Saucer Scout "; CHR$(148) 24: 6 PRINT "C:IS1 High Speed Craft "; CHR$(173) 25: 7 PRINT "D:YEHN Turbo Racer Ship "; CHR$(157) 26: 8 PRINT "E:Z11 Magnetic Surfship "; CHR$(239) 27: 9 PRINT "Please use capital letters!" 28: LINE INPUT RocChoice$ 29: IF RocChoice$ = "A" THEN Rocket = 19: GOTO GAME ELSE GOTO IFB 30: IFB: 31: IF RocChoice$ = "B" THEN Rocket = 148: GOTO GAME ELSE GOTO IFC 32: IFC: 33: IF RocChoice$ = "C" THEN Rocket = 173: GOTO GAME ELSE GOTO IFD 34: IFD: 35: IF RocChoice$ = "D" THEN Rocket = 157: GOTO GAME ELSE GOTO IFE 36: IFE: 37: IF RocChoice$ = "E" THEN Rocket = 239: GOTO GAME ELSE GOTO CHOOSE 38: 39: GAME: 40: 10 'This is it! + 41: 40 ON KEY(12) GOSUB 1005 42: 50 ON KEY(13) GOSUB 2005 43: 55 ON KEY(11) GOSUB 6005 44: 57 ON KEY(14) GOSUB 5005 45: 60 CLS 46: 70 STARTTIME$ = TIME$ 47: 80 X = VAL(RIGHT$(STARTTIME$, 2)) 48: 90 RANDOMIZE (X) 49: 100 LIMIT = 200 50: 110 TONE = 1 51: 120 PLAY "MBT255MSL32" 52: 130 CROW% = 10 53: 140 CCOL% = 40 54: 150 CSR$ = CHR$(Rocket) 55: 160 CLEFT$ = CSR$ + " " 56: 170 CRIGHT$ = " " + CHR$(Rocket) 57: 180 BLOCK$ = STRING$(1, 15) 58: 190 LOCATE CROW%, CCOL% 59: 200 PRINT CSR$ 60: 210 KEY(12) ON 61: 220 KEY(13) ON 62: 225 KEY(14) ON 63: 227 KEY(11) ON 64: 230 TIME1$ = TIME$ 65: 240 TIMEVAL1 = 3600 * VAL(LEFT$(TIME1$, 2)) 66: 250 TIMEVAL1 = TIMEVAL1 + 60 * VAL(MID$(TIME1$, 4, 4)) 67: 260 TIMEVAL1 = TIMEVAL1 + VAL(RIGHT$(TIME1$, 2)) 68: 69: 265 CROWE% = CROW% + 3 70: 270 'OBSTACLE LOOP 71: 275 FOR I = 1 TO LIMIT 72: 280 XCOORD = INT(80 * RND(1)) + 1 73: 290 KEY(12) STOP 74: 300 KEY(13) STOP 75: 320 LOCATE 24, XCOORD: COLOR 6: PRINT BLOCK$: COLOR 7 76: 330 LOCATE CROW% - 1, CCOL%: PRINT " " 77: 340 IF SCREEN(CROW%, CCOL%) <> 32 THEN SCORE = SCORE - 1: CCOL% = CCOL% - 1 + 1 78: 343 IF CCOL% = 79 THEN CCOL% = 1 79: 345 LOCATE 1, 1: PRINT SCORE 80: 347 IF CROWE% = CROW% THEN CROWE = CROWE - 2 81: 350 LOCATE CROW%, CCOL%: PRINT CSR$ 82: 353 IF INKEY$ = " " THEN LOCATE CROWE%, CCOL% - 1: PRINT "|": LOCATE CROWE%, CCOL% + 1: PRINT "|" 83: 341 IF SCREEN(CROW%, CCOL%) <> 32 THEN SCORE = SCORE + 1: CCOL% = CCOL% - 1 + 1 84: 355 FOR SPEED = 1 TO Level 85: 360 NEXT 86: 370 KEY(12) ON 87: 380 KEY(13) ON 88: 390 KEY(11) ON 89: 400 KEY(14) ON 90: 410 NEXT I 91: 420 IF OLDTIME$ <> TIME$ THEN OLDTIME$ = TIME$: LIMIT = LIMIT - 3: TONE = TONE + .5 92: 430 GOTO 270 93: 94: 1000 'GO LEFT 95: 1005 KEY(13) STOP 96: 1010 IF CCOL% = 1 THEN KEY(13) ON: RETURN 97: 1020 CCOL% = CCOL% - 1: 98: 1030 LOCATE CROW%, CCOL%: PRINT CLEFT$: KEY(13) ON: RETURN 99: 100: 2000 'GO RIGHT 101: 2005 KEY(12) STOP 102: 2010 IF CCOL% = 80 THEN KEY(12) ON: RETURN 103: 2020 CCOL% = CCOL% + 1: 104: 2030 LOCATE CROW%, CCOL% - 1: PRINT CRIGHT$: KEY(12) ON: RETURN 105: 106: 3989 'THE END 107: 3010 TIME2$ = TIME$ 108: 3020 TIMEVAL2 = 3600 * VAL(LEFT$(TIME2$, 2)) 109: 3030 TIMEVAL2 = TIMEVAL2 + 60 * VAL(MID$(TIME2$, 4, 2)) 110: 3040 TIMEVAL2 = TIMEVAL2 + VAL(RIGHT$(TIME2$, 2)) 111: 3050 TIME = TIMEVAL2 - TIMEVAL1 112: IF TIME >= 30 THEN GOTO HIGHSCORE 113: 3200 END 114: 115: HIGHSCORE: 116: CLS 117: COLOR 4 118: PRINT "Congratulations!" 119: COLOR 14 120: PRINT "You've survived over "; CHR$(171); " minute, and have a high score!" 121: PRINT "Actual time: "; TIME 122: COLOR 7 123: END 124: 125: 5005 'Slow down 126: KEY(11) STOP 127: 5010 Level = Level - 250 128: RETURN 129: 130: 6005 'Accelerate 131: KEY(14) STOP 132: 6010 Level = Level + 250 133: RETURN 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: |