home *** CD-ROM | disk | FTP | other *** search
/ World of Shareware - Software Farm 2 / wosw_2.zip / wosw_2 / QBAS / QB4GRAF.ZIP / BOUNCE.BAS next >
BASIC Source File  |  1989-05-16  |  3KB  |  82 lines

  1. DIM OPT$(10): LIMIT = 7
  2.  
  3. FOR I = 1 TO LIMIT
  4.     READ OPT$(I)                'substitute your own titles here
  5. NEXT
  6. DATA "BINGO", "HEX", "MASTERMIND", "SOLO", "POP THE BALLOONS"
  7. DATA "LOTTERY NUMBERS", "EXIT TO DOS"
  8.  
  9. SCREEN 9                        'EGA hi-res screen
  10. VIEW (0, 0)-(639, 349), 0       'necessary mapping
  11. WINDOW SCREEN (1, 1)-(81, 26)   'more necessary mapping
  12.  
  13. CIRCLE (24.4, 8.5), 9, 7        'draw the circles
  14. PAINT (24.4, 8.5), 2, 7         'change colors if you like
  15. COLOR 7
  16. CIRCLE (56, 13.5), 25, 7
  17. PAINT (56, 13.5), 4, 7
  18. CIRCLE (17, 18), 15, 7
  19. PAINT (17, 18), 1, 7
  20.  
  21. LOCATE 7, 19: PRINT "           "       'menu instructions
  22. LOCATE 8, 19: PRINT " MAIN MENU "
  23. LOCATE 9, 19: PRINT "           "
  24. LOCATE 13, 10: PRINT "             "
  25. LOCATE 14, 10: PRINT "   PRESS     "
  26. LOCATE 15, 10: PRINT " ENTER WHEN  "
  27. LOCATE 16, 10: PRINT "             "
  28. LOCATE 17, 10: PRINT " THE      IS "    'finish this line below
  29. LOCATE 18, 10: PRINT "             "
  30. LOCATE 19, 10: PRINT " BESIDE THE  "
  31. LOCATE 20, 10: PRINT " CHOICE YOU  "
  32. LOCATE 21, 10: PRINT "   WANT      "
  33. LOCATE 22, 10: PRINT "             "
  34.  
  35. CIRCLE (16.5, 17.5), 2, 7       'this prints the ball
  36. PAINT (16, 17), 14, 7
  37.  
  38. H = 45: V = 12 - LIMIT          'if you have long menu items you
  39.                                 '  can decrease H by a smidgen
  40. SPOT = 1: OLD.SPOT = LIMIT      'initialization stuff
  41. GOSUB CHOICES                   'display menu choices
  42.  
  43. LOOP.IT:                        'moves circle if no key was pressed
  44.     K$ = INKEY$: IF SPOT > LIMIT THEN SPOT = 1
  45.     IF K$ = "" THEN
  46.        GOSUB DISPLAY.SPOT
  47.        OLD.SPOT = SPOT
  48.        SPOT = SPOT + 1
  49.        GOTO LOOP.IT
  50.     END IF
  51.  
  52.     IF ASC(K$) <> 13 THEN BEEP: GOTO LOOP.IT
  53.     GOTO CHOOSE.IT
  54.  
  55. DISPLAY.SPOT:
  56.     X = V + SPOT * 2: X = X + .5: Y = V + OLD.SPOT * 2: Y = Y + .5
  57.     CIRCLE (H, X), 2, 7
  58.     PAINT (H, X), 14, 7                 'make the moving circle
  59.     CIRCLE (H, Y), 2, 4
  60.     PAINT (H, Y), 4, 4
  61.     X! = TIMER
  62.     WHILE TIMER < X! + .45: WEND        'delay time for bouncing ball
  63.     RETURN
  64.  
  65. CHOOSE.IT:
  66.     CLS
  67.     IF OLD.SPOT = 1 THEN CHAIN "BINGO"  'my game programs - they all
  68.     IF OLD.SPOT = 2 THEN CHAIN "HEX"    '  end with CHAIN "MENU" to
  69.     IF OLD.SPOT = 3 THEN CHAIN "MMIND"  '  return to this program
  70.     IF OLD.SPOT = 4 THEN CHAIN "SOLO"
  71.     IF OLD.SPOT = 5 THEN CHAIN "POP"
  72.     IF OLD.SPOT = 6 THEN CHAIN "LOTTERY"
  73.     IF OLD.SPOT = 7 THEN END
  74.  
  75. CHOICES:
  76.     FOR I = 1 TO LIMIT
  77.         LOCATE V + 2 * I, H + 2
  78.         PRINT " "; OPT$(I); SPC(17 - LEN(OPT$(I)));
  79.     NEXT
  80.     RETURN
  81.  
  82.