5748110 [rkeene@sledge /home/rkeene/devel/archive/quickbasic]$ cat -n rocket.bas
   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: 
5748111 [rkeene@sledge /home/rkeene/devel/archive/quickbasic]$

Click here to go back to the directory listing.
Click here to download this file.
last modified: 2000-05-09 21:08:41