home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 15 / CDACTUAL15.iso / cdactual / program / basic / QBA201.ZIP / DEMOWIND.BAS < prev    next >
Encoding:
BASIC Source File  |  1992-12-31  |  8.6 KB  |  307 lines

  1. 'COPYRIGHT(c) 1993 Crady vonPawlak  ALL RIGHTS RESERVED
  2.  
  3. 'Window demo version 5.50 1992
  4.  
  5. '        Warning! This program will run ONLY with QBAccel rel 2.01 (or later)
  6. '        and Microsoft QuickBASIC 4.5 (or later).
  7.  
  8. '        From the DOS command line, load as follows:
  9. '        QB DEMOWIND /AH/l QBaccel  (then press ENTER)
  10.  
  11.  
  12. '        (QBAccel libraries must be in QuickBASIC directory. Thank you).
  13.  
  14. 'For explanations on the following see the ACCEL.COM on-screen documentation.
  15.  
  16.  
  17. DEFINT A-Z
  18. SHELL "cls"
  19.  
  20. COLOR 15, 1: CLS
  21.  
  22. 'Bricks in sunlight
  23. CALL Bricks(71, 12, 23)
  24.  
  25. 'Mortar cap on top of wall
  26. LOCATE 10, 1: CALL ZiPrint("████████████████████████████████████████████████████████████████████████████████", 23)
  27.  
  28. 'Bricks in shadows
  29. CALL Bricks(8, 11, 11)
  30.  
  31. 'Add some "grass" at base of wall
  32. CALL FastFlood(24, 25, 1, 80, 10, 0, 206)
  33.  
  34. 'Show the logo
  35. LOCATE 2, 1:  CALL ZiPrint("  ████████████ █████████   ▄██████▄  ██████████ ██████████ █████████ ███        ", 25)
  36. LOCATE 3, 1:  CALL ZiPrint("  ███      ███ ███   ███  ███    ███ ███    ▀▀▀ ███    ▀▀▀ ███       ███        ", 25)
  37. LOCATE 4, 1:  CALL ZiPrint("  ███      ███ ██████████ ██████████ ███        ███        ███████   ███        ", 25)
  38. LOCATE 5, 1:  CALL ZiPrint("  ███   ▄▄▄███ ███    ███ ███    ███ ███    ▄▄▄ ███    ▄▄▄ ███       ███        ", 25)
  39. LOCATE 6, 1:  CALL ZiPrint("  ████████████ ██████████ ███    ███ ██████████ ██████████ █████████ █████████  ", 25)
  40. LOCATE 7, 1:  CALL ZiPrint("        ▀▀▀                                                                     ", 25)
  41. LOCATE 2, 74: CALL ZiPrint("TM", 23)
  42.  
  43. 'Make logo look 3-D
  44. 'Q
  45. LOCATE 3, 6:  CALL ZiPrint("▀▀▀▀▀▀", 16)
  46.  
  47. 'B
  48. LOCATE 3, 19:  CALL ZiPrint("▀▀▀", 16)
  49. LOCATE 5, 19:  CALL ZiPrint("▀▀▀▀", 16)
  50.  
  51. 'A
  52. LOCATE 3, 30:  CALL ZiPrint("▀▀▀▀", 16)
  53. LOCATE 5, 30:  CALL ZiPrint("▀▀▀▀", 16)
  54.  
  55. 'C
  56. LOCATE 3, 41:  CALL ZiPrint("▀▀▀▀", 16)
  57. LOCATE 3, 45:  CALL ZiPrint("▀▀▀", 9)
  58.  
  59. 'C
  60. LOCATE 3, 52:  CALL ZiPrint("▀▀▀▀", 16)
  61. LOCATE 3, 56:  CALL ZiPrint("▀▀▀", 9)
  62.  
  63. 'E
  64. LOCATE 3, 63:  CALL ZiPrint("▀▀▀▀▀▀", 16)
  65. LOCATE 5, 63:  CALL ZiPrint("▀▀▀▀", 16)
  66.  
  67. LOCATE 7, 1:  CALL ZiPrint("  ▀▀▀▀▀▀   ▀▀▀ ▀▀▀▀▀▀▀▀▀▀ ▀▀▀    ▀▀▀ ▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀", 16)
  68. LOCATE 7, 9:  CALL ZiPrint("▀▀▀", 9)
  69.  
  70. 'Add some clouds
  71. LOCATE 1, 1:  CALL ZiPrint("                ▀▀▀████▄▄▄▄                        ▀▀▀▀▀████████▀▀▀             ", 31)
  72. LOCATE 2, 25: CALL ZiPrint("▀", 31)
  73.  
  74. LOCATE 2, 59: CALL ZiPrint("▀", 31)
  75. LOCATE 3, 1:  CALL ZiPrint("▄█", 31)
  76. LOCATE 4, 1:  CALL ZiPrint("██", 31)
  77.  
  78. LOCATE 3, 6:  CALL ZiPrint("▄▄", 15)
  79. LOCATE 4, 6:  CALL ZiPrint("▀▀", 31)
  80. LOCATE 4, 8:  CALL ZiPrint("▀▀", 31)
  81.  
  82. LOCATE 4, 44:  CALL ZiPrint("▀▀▀██", 31)
  83. LOCATE 4, 52:  CALL ZiPrint("██▄▄▄▄▄▄", 31)
  84.  
  85. LOCATE 5, 48:  CALL ZiPrint("█", 31)
  86. LOCATE 5, 52:  CALL ZiPrint("▀▀▀▀", 31)
  87.  
  88. LOCATE 7, 77:  CALL ZiPrint("▄▄██", 15)
  89. LOCATE 8, 76:  CALL ZiPrint("▀▀▀██", 31)
  90.  
  91. 'And finally, a railing along top of wall
  92. LOCATE 9, 1:  CALL ZiPrint("──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──", 16)
  93.  
  94. PCOPY 0, 1
  95.  
  96. CALL Ticks(18)
  97. CALL GroWindow(7, 73, 13, 21, 3, 1, "r", 7, 15, 5, " QBAccel(TM) 2.01 Copyright(c)1993 For QuickBASIC(TM) 4.5", 1, 0, 0, 0)
  98. FOR Row = 14 TO 20
  99.  LOCATE Row, 8: CALL ZiPrint("█", 120)
  100. NEXT
  101.  
  102. LOCATE 14, 9: CALL ZiPrint("▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", 120)
  103.  
  104. LOCATE 15, 11: CALL ZiPrint("This is a demonstration of some of the text functions that", 112)
  105. LOCATE 16, 11: CALL ZiPrint("are available using QBAccel, the multifunction library for", 112)
  106. LOCATE 17, 11: CALL ZiPrint("Microsoft(TM) QuickBASIC. Windowing is only one of many one-", 112)
  107. LOCATE 18, 11: CALL ZiPrint("line commands within QBAccel. SVGA functions, binary math,", 112)
  108. LOCATE 19, 11: CALL ZiPrint("and much more are availble within the QBAccel library!", 112)
  109. LOCATE 21, 21: CALL ZiPrint("After demo begins, press any key to Exit", 95)
  110.  
  111. x = 20: 'Allow 20 seconds to read message and display counts
  112.  
  113. DO
  114.   q! = TIMER
  115.   LOCATE 20, 11: CALL ZiPrint("This demonstration will begin in" + STR$(x) + " seconds...  ", 127)
  116.   x = x - 1: IF x < -1 THEN EXIT DO
  117.   DO: LOOP UNTIL TIMER - q! >= 1
  118. LOOP
  119.  
  120.   PCOPY 1, 0
  121.   CALL Ticks(18)
  122.   CALL FastFlood(1, 25, 1, 80, 7, 7, 219)
  123.  
  124.   q! = TIMER
  125.   DO: LOOP UNTIL TIMER - q! >= 1
  126.  
  127. 'Main random window generator.
  128. CALL WipeKBD
  129. DO
  130.   GOSUB resets
  131.   GOSUB l
  132.   GOSUB t
  133.   GOSUB b
  134.   GOSUB br
  135.   GOSUB ss
  136.   GOSUB bk
  137.   GOSUB brc
  138.   GOSUB bbk
  139.   GOSUB acc
  140.   GOSUB s
  141.  
  142. IF (r / 2) = INT(r / 2) AND (t > 1) AND (l > 2) AND (b < 24) THEN
  143.    tob = 1
  144.    t = t + 1
  145.    ELSE tob = 0
  146. END IF
  147.  
  148. IF tob = 0 AND t > 24 THEN t = 24
  149.  
  150. IF ((acc / 2) = (INT(acc / 2))) THEN
  151.      GOSUB WindowSetI
  152. ELSE GOSUB WindowSetII
  153. END IF
  154.  
  155. count& = count& + 1
  156. LOOP UNTIL INKEY$ > ""
  157. GOTO ok
  158.  
  159. l:
  160.  GOSUB resets
  161.  l = INT((60 - 0) * RND + 1)
  162.  r = INT((81 - 10) * RND + 10)
  163.  IF r <= l + 3 THEN r = l + 3
  164.  IF r > 80 THEN r = 80
  165. RETURN
  166.  
  167. t:
  168.  t = INT((16 - 1) * RND + 1)
  169.  IF t > 17 THEN t = 17
  170.  IF t < 1 THEN t = 1
  171. RETURN
  172.  
  173. b:
  174.  b = INT((25 - 0) * RND + 1)
  175.  IF b <= t + 3 THEN b = t + 3
  176.  IF b > 25 THEN b = 25
  177. RETURN
  178.  
  179. br:
  180.  br = INT((4 - 0) * RND + 0)
  181.  IF br > 3 THEN br = 3
  182. RETURN
  183.  
  184. s:
  185.  s = INT((2 - 0) * RND + 1)
  186.  IF (r < 78) AND (l > 2) AND (t > 2) AND (b < 23) THEN
  187.   s = s
  188.  ELSE s = 0
  189.  END IF
  190. RETURN
  191.  
  192. ss:
  193.  t$ = ""
  194.  q = INT((3 - 0) * RND + 0)
  195.  IF q > 1 THEN s$ = "l"
  196.  IF q < 1 THEN s$ = "r"
  197.  IF q > 1 AND r - l > 30 THEN t$ = "QBAccel!": s$ = "l"
  198.  IF q < 1 AND r - l > 30 THEN t$ = "QBAccel!": s$ = "r"
  199. RETURN
  200.  
  201. bk:
  202.  bk = INT((31 - 0) * RND + 0)
  203. RETURN
  204.  
  205. brc:
  206.  ask = INT((254 - 16) * RND + 16)
  207.  brc = INT((31 - 0) * RND + 0)
  208. RETURN
  209.  
  210. acc:
  211.  acc = INT((255 - 1) * RND + 0)
  212.  IF acc = 7 THEN acc = 176
  213. RETURN
  214.  
  215. bbk:
  216.  GOSUB resets
  217.  bbk = INT((31 - 0) * RND + 0)
  218. RETURN
  219.  
  220. resets:
  221.  'Make truly random by adding an increasing variable
  222.  RANDOMIZE (TIMER * count&) / .5
  223. RETURN
  224.  
  225. ok:
  226.  CALL Curtains(1)
  227.  LOCATE 1, 1: CALL ZiPrint("  A total of" + STR$(count&) + " windows were created and displayed.", 31)
  228.  LOCATE 10, 1
  229.  CALL ZiPrint("  QBAccel(TM)  COPYRIGHT(c)1993  Crady vonPawlak U.S.A.    All Rights Reserved  ", 112)
  230.  CALL GroWindow(16, 64, 13, 21, 1, 1, "r", 7, 15, 1, "                     ", 1, 0, 0, 0)
  231.  LOCATE 21, 24: CALL ZiPrint("┤ Allow 2-6 weeks for delivery ├", 31)
  232.  
  233.  FOR Row = 14 TO 20
  234.   LOCATE Row, 17: CALL ZiPrint("█", 120)
  235.  NEXT
  236.  
  237.  LOCATE 14, 18: CALL ZiPrint("▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", 120)
  238.  
  239.  CALL WipeKBD
  240.  
  241.  LOCATE 15, 21: CALL ZiPrint("Order your registered copy by sending", 112)
  242.  LOCATE 16, 21: CALL ZiPrint("US$25.00 plus US$10.00 and a formatted", 112)
  243.  LOCATE 17, 34: CALL ZiPrint("diskette to:", 112)
  244.                                                
  245.  LOCATE 18, 26: CALL ZiPrint("Crady vonPawlak  /  QBAccel", 112)
  246.  LOCATE 19, 32: CALL ZiPrint("1010 Park Drive", 112)
  247.  LOCATE 20, 30: CALL ZiPrint("Everett, WA 98203 USA", 112)
  248.  
  249.  CALL WipeKBD
  250.  
  251.  CALL Rain("Demonstration complete.", 15, 1, 13, 19, 1)
  252.  CALL WipeKBD
  253.  
  254.  CALL Stack("Returning to DOS.", 9, 0, 22, 33, 66, 1)
  255.  
  256.  LOCATE 24, 12: CALL ZiPrint(" Bank drafts or certified checks ONLY, please. Thank you! ", 138)
  257.  
  258.  CALL WipeKBD
  259.  LOCATE 7, 1
  260. END: '.........................End of program................................
  261.  
  262. WindowSetI:
  263. IF b > 23 OR l < 3 OR r > 78 OR t < 2 THEN s = 0
  264. IF r - l < 16 AND b - t > 16 THEN CALL GroWindow(l, r, t, b, br, s, s$, bk, brc, bbk, "", 3, 0, tob, acc)
  265. IF r - l > 40 AND b - t > 10 AND s$ > "" THEN
  266.    CALL GroWindow(l, r, t, b, br, s, s$, bk, brc, bbk, t$, 3, 0, tob, acc)
  267.    ELSE CALL GroWindow(l, r, t, b, br, s, s$, bk, brc, bbk, t$, 1, 0, tob, acc)
  268. END IF
  269.  
  270.  IF r - l > 20 AND b - t > 10 AND r - l < 70 AND b - t < 22 THEN
  271.   CALL FastFlood(t + 1, b - 1, l + 1, r - 1, brc, bk, ask)
  272.   set = 1
  273.  END IF
  274.  
  275.  IF (set = 1) AND ((acc / 3) = INT(acc / 3)) THEN
  276.  FOR s = t TO b - 2
  277.   CALL ScrollDn(1, (16 * bk) + brc, t - 1, l - 1, b - 2, r - 1)
  278.   CALL Ticks(1)
  279.  NEXT
  280.  END IF
  281.  set = 0
  282. RETURN
  283.  
  284. WindowSetII:
  285. IF b > 23 OR l < 3 OR r > 78 OR t < 2 THEN s = 0
  286. IF r - l < 16 AND b - t > 16 THEN CALL GoWindow(l, r, t, b, br, s, s$, bk, brc, bbk, "", 3, 0, tob, acc)
  287. IF r - l > 40 AND b - t > 10 AND s$ > "" THEN
  288.    CALL GoWindow(l, r, t, b, br, s, s$, bk, brc, bbk, t$, 3, 0, tob, acc)
  289.    ELSE CALL GoWindow(l, r, t, b, br, s, s$, bk, brc, bbk, t$, 1, 0, tob, acc)
  290. END IF
  291.  
  292.  IF r - l > 20 AND b - t > 10 AND r - l < 70 AND b - t < 22 THEN
  293.   CALL FastFlood(t + 1, b - 1, l + 1, r - 1, brc, bk, ask)
  294.   set = 1
  295.  END IF
  296.  
  297.  IF (set = 1) AND ((acc / 3) = INT(acc / 3)) THEN
  298.  FOR s = t TO b - 2
  299.   CALL ScrollUp(1, (16 * bk) + brc, t, l - 1, b - 1, r - 1)
  300.   CALL Ticks(1)
  301.  NEXT
  302.  END IF
  303.  set = 0
  304. RETURN
  305.  
  306.  
  307.