home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS 1992 September / Simtel20_Sept92.cdr / msdos / pcmag / vol7n14.arc / BOUNCE.BAS next >
BASIC Source File  |  1988-06-30  |  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.