home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / basic / baswiz18.zip / MIRRORS.BAS < prev    next >
BASIC Source File  |  1992-07-23  |  2KB  |  76 lines

  1. '   +----------------------------------------------------------------------+
  2. '   |                                                                      |
  3. '   |         BASWIZ  Copyright (c) 1990-1992  Thomas G. Hanlin III        |
  4. '   |                                                                      |
  5. '   |                       The BASIC Wizard's Library                     |
  6. '   |                                                                      |
  7. '   +----------------------------------------------------------------------+
  8.  
  9.    DECLARE FUNCTION RAND% (Range%)
  10.  
  11.    DECLARE SUB GetDisplay (Adapter%, Mono%)
  12.    DECLARE SUB G12Cls ()
  13.    DECLARE SUB G12Color (BYVAL Foreground%, BYVAL Background%)
  14.    DECLARE SUB G12Mode (BYVAL Graphics%)
  15.    DECLARE SUB G12Plot (BYVAL X%, BYVAL Y%)
  16.  
  17.    CONST MaxX = 639
  18.    CONST MaxY = 479
  19.    CONST MaxColor = 15
  20.  
  21.    DEFINT A-Z
  22.  
  23.    RANDOMIZE TIMER
  24.  
  25.    GetDisplay Adapter, Mono
  26.  
  27.    IF Adapter < 6 THEN
  28.       PRINT "Sorry, but you must have a VGA display active to run this demo."
  29.       END
  30.    END IF
  31.  
  32.    X = RAND(MaxX \ 2)
  33.    Y = RAND(MaxY \ 2)
  34.    C = RAND(MaxColor - 1) + 1
  35.  
  36.    G12Mode 1
  37.    G12Color C, 0
  38.  
  39.    DO
  40.       ky$ = INKEY$
  41.       IF LEN(ky$) THEN
  42.          SELECT CASE UCASE$(ky$)
  43.             CASE "C": G12Cls
  44.             CASE "P": WHILE INKEY$ = "": WEND
  45.             CASE ELSE
  46.          END SELECT
  47.       ELSE
  48.          G12Plot X, Y
  49.          G12Plot MaxX - X, Y
  50.          G12Plot MaxX - X, MaxY - Y
  51.          G12Plot X, MaxY - Y
  52.          SELECT CASE RAND(3)
  53.             CASE 0: X = X - 1: IF X < 0 THEN X = MaxX \ 2
  54.             CASE 1: X = X + 1: IF X > MaxX \ 2 THEN X = 0
  55.             CASE ELSE
  56.          END SELECT
  57.          SELECT CASE RAND(3)
  58.             CASE 0: Y = Y - 1: IF Y < 0 THEN Y = MaxY \ 2
  59.             CASE 1: Y = Y + 1: IF Y > MaxY \ 2 THEN Y = 0
  60.             CASE ELSE
  61.          END SELECT
  62.          IF RAND(20) = 1 THEN
  63.             C = RAND(MaxColor - 1) + 1
  64.             G12Color C, 0
  65.          END IF
  66.       END IF
  67.    LOOP UNTIL ky$ = CHR$(27)
  68.  
  69.    G12Mode 0
  70.  
  71.  
  72.  
  73. FUNCTION RAND (Range)
  74.    RAND = INT(Range * RND)
  75. END FUNCTION
  76.