'===========================================================================
' Subject: TORNADO SIMULATOR                  Date: 06-14-96 (20:20)       
'  Author: John Wantland                      Code: QB, QBasic, PDS        
'  Origin: kwantlan@coffey.com              Packet: EGAVGA.ABC
'===========================================================================
REM tornado
' sorry about the mess at first, but I haven't found out what's wrong yet.
SCREEN 12: CLS
RANDOMIZE TIMER
n = 50    'how thick tornado is. change if you want
j = 0
DIM x(n)
DIM y(n)
DIM c(n)
DIM d(n)
DIM l(n)
DIM g(n)
DIM j(n)
FOR i = 1 TO n
y(i) = INT(RND * 480 + 1)
d(i) = INT(RND * 2 + 1)
j(i) = 0
GOSUB 4
x(i) = INT(RND * (g(i) - l(i) + 1) + l(i))
NEXT i
DO
FOR i = 1 TO n
PSET (x(i), y(i)), 0
IF d(i) = 1 THEN x(i) = x(i) + 2: c(i) = 7: IF x(i) >= g(i) THEN d(i) = 2
IF d(i) = 2 THEN x(i) = x(i) - 2: c(i) = 15: IF x(i) <= l(i) THEN d(i) = 1
y(i) = y(i) + 1: IF y(i) >= 480 THEN GOSUB 2
j(i) = j(i) + 1: IF j(i) > 2 THEN j(i) = 0: g(i) = g(i) - 1: l(i) = l(i) + 1
a$ = INKEY$: IF a$ <> "" THEN END
PSET (x(i), y(i)), c(i)
NEXT i
LOOP
2 y(i) = 1
d(i) = INT(RND * 2 + 1)
j(i) = 0
GOSUB 4
x(i) = INT(RND * (g(i) - l(i)) + l(i))
RETURN
4 g(i) = 500
l(i) = 100
FOR t = 1 TO 480
g(i) = g(i) - 1
l(i) = l(i) + 1
IF t = y(i) THEN RETURN
NEXT t
RETURN
