'===========================================================================
' Subject: FOUNTAIN FIREWORKS                 Date: 06-06-96 (18:21)       
'  Author: John Wantland                      Code: QB, QBasic, PDS        
'  Origin: kwantlan@coffey.com              Packet: EGAVGA.ABC
'===========================================================================
REM fountain fireworks
n = 100          'how many sparks on the screen at one time. Change if you have a slower computer
DIM y(n)
DIM x(n)
DIM d(n)
DIM c(n)
DIM h(n)
DIM n(n)
DIM ox(n)
t = INT(RND * 640 + 1)
SCREEN 12: CLS
FOR i = 1 TO n
RANDOMIZE TIMER
x(i) = t
y(i) = 480
d(i) = INT(RND * 2 + 1)
c(i) = INT(RND * 15 + 1)
h(i) = INT(RND * 400 + 100)
ox(i) = x(i)
n(i) = INT(RND * 5)
NEXT i
DO
FOR i = 1 TO n
PSET (x(i), y(i)), 0
IF d(i) = 1 THEN y(i) = y(i) - 5: x(i) = x(i) - n(i): IF y(i) <= h(i) THEN d(i) = 3
IF d(i) = 2 THEN y(i) = y(i) - 5: x(i) = x(i) + n(i): IF y(i) <= h(i) THEN d(i) = 4
IF d(i) = 3 THEN y(i) = y(i) + 5: x(i) = x(i) - n(i): IF y(i) > 480 THEN GOSUB 4
IF d(i) = 4 THEN y(i) = y(i) + 5: x(i) = x(i) + n(i): IF y(i) > 480 THEN GOSUB 4
a$ = INKEY$: IF a$ <> "" THEN END
PSET (x(i), y(i)), c(i)
NEXT i
LOOP
4 PSET (x(i), y(i)), 0
x(i) = ox(i)
y(i) = 480
d(i) = INT(RND * 2 + 1)
n(i) = INT(RND * 5)
h(i) = INT(RND * 300 + 100)
RETURN
