home *** CD-ROM | disk | FTP | other *** search
/ C++ Games Programming / CPPGAMES.ISO / fgl / fglight / exfor.arj / TEMP / 17-02.FOR < prev    next >
Text File  |  1995-01-20  |  2KB  |  74 lines

  1. $INCLUDE: 'C:\FG\FASTGRAF.FI'
  2.  
  3.       PROGRAM MAIN
  4.  
  5.       INTEGER RECTANGLES
  6.       PARAMETER (RECTANGLES=200)
  7.  
  8.       INTEGER I
  9.       INTEGER MINX, MAXX, MINY, MAXY
  10.       INTEGER OLD_MODE
  11.       INTEGER XRES, YRES
  12.       INTEGER RANDOM
  13.       INTEGER FG_AUTOMODE, FG_EGACHECK, FG_GETMODE
  14.       INTEGER FG_GETMAXX, FG_GETMAXY
  15.  
  16.       CALL FG_INITPM
  17.       IF (FG_EGACHECK() .EQ. 0) THEN
  18.          STOP 'This program requires EGA or VGA.'
  19.       END IF
  20.  
  21.       OLD_MODE = FG_GETMODE()
  22.       CALL FG_SETMODE(FG_AUTOMODE())
  23.       CALL FG_SETFUNC(3)
  24.  
  25.       XRES = FG_GETMAXX()
  26.       YRES = FG_GETMAXY()
  27.  
  28.       DO 10 I = 1,RECTANGLES
  29.          MINX = RANDOM(0,XRES)
  30.          MAXX = RANDOM(0,XRES)
  31.          MINY = RANDOM(0,YRES)
  32.          MAXY = RANDOM(0,YRES)
  33.          IF (MINX .GT. MAXX) THEN
  34.             CALL SWAP(MINX,MAXX)
  35.          END IF
  36.          IF (MINY .GT. MAXY) THEN
  37.             CALL SWAP(MINY,MAXY)
  38.          END IF
  39.          CALL FG_SETCOLOR(RANDOM(0,15))
  40.          CALL FG_RECT(MINX,MAXX,MINY,MAXY)
  41. 10    CONTINUE
  42.  
  43.       CALL FG_SETMODE(OLD_MODE)
  44.       CALL FG_RESET
  45.  
  46.       STOP ' '
  47.       END
  48.  
  49.       INTEGER FUNCTION RANDOM(MIN,MAX)
  50.  
  51.       INTEGER MIN, MAX
  52.       INTEGER SEED, TEMP
  53.  
  54.       DATA SEED /12345/
  55.  
  56.       TEMP = IEOR(SEED,ISHFT(SEED,-7))
  57.       SEED = IAND(IEOR(ISHFT(TEMP,8),TEMP),#7FFF)
  58.       RANDOM = MOD(SEED,MAX-MIN+1) + MIN
  59.  
  60.       RETURN
  61.       END
  62.  
  63.       SUBROUTINE SWAP(VAR1,VAR2)
  64.       INTEGER VAR1, VAR2
  65.       INTEGER TEMP
  66.  
  67.       TEMP = VAR1
  68.       VAR1 = VAR2
  69.       VAR2 = TEMP
  70.  
  71.       RETURN
  72.       END
  73.  
  74.