'DIM SHARED mouse AS INTEGER
'DIM SHARED m1 AS INTEGER
'DIM SHARED m2 AS INTEGER
'DIM SHARED m3 AS INTEGER
'DIM SHARED m4 AS INTEGER

' DEF SEG = 0
' MSEG = 256 * PEEK(51 * 4 + 3) + PEEK(51 * 4 + 2)
' mouse = 256 * PEEK(51 * 4 + 1) + PEEK(51 * 4) + 2
' DEF SEG = MSEG
' m1 = 3: CALL absolute(m1, m2, m3, m4, mouse)


sok = 50
hany = 200
torol = 1
DIM x(hany, sok): DIM y(hany, sok)
DIM n(hany): DIM m(hany)
DIM xx(hany): DIM yy(hany)
DIM sebx(hany): DIM seby(hany)
DIM alfa(hany)

SCREEN 12
dt = .05
pi = 3.14159
seb = 30
hossz = 10

eleje:
' m1 = 3: CALL absolute(m1, m2, m3, m4, mouse)



CLS
RANDOMIZE TIMER

FOR i = 1 TO hany
x(i, 1) = 300
y(i, 1) = 240
n(i) = 1
alfa(i) = RND * 2 * pi
NEXT i

ciklus:

a$ = INKEY$
IF a$ = "" THEN GOTO tovabb
IF a$ = "+" THEN torol = 0
IF a$ = "-" THEN CLS : torol = 1
IF a$ = CHR$(13) THEN END

tovabb:
FOR i = 1 TO hany
xx(i) = x(i, n(i))
yy(i) = y(i, n(i))
n(i) = n(i) + 1
IF n(i) > sok THEN n(i) = 1
m(i) = n(i) - sok + 1
IF m(i) <= 0 THEN m(i) = m(i) + sok

pontgyartas:

 mx = m3
 my = m4


IF xx(i) < 0 AND sebx(i) < 0 OR xx(i) > 600 AND sebx(i) > 0 THEN alfa(i) = pi - alfa(i)
IF yy(i) < 0 AND seby(i) < 0 OR yy(i) > 450 AND seby(i) > 0 THEN alfa(i) = 2 * pi - alfa(i)
IF alfa(i) < 0 THEN alfa(i) = alfa(i) + 2 * pi
IF alfa(i) >= 2 * pi THEN alfa(i) = alfa(i) - 2 * pi

beta = (RND - .5) * 1
alfa(i) = alfa(i) + beta

sebx(i) = seb * COS(alfa(i))
seby(i) = seb * SIN(alfa(i))

x(i, n(i)) = xx(i) + sebx(i) * dt
y(i, n(i)) = yy(i) + seby(i) * dt

'PSET (x(i, n(i)), y(i, n(i))), 6 + INT(n(i) / hossz - 9 * INT(n(i) / 9 / hossz))
PSET (x(i, n(i)), y(i, n(i))), 9 + i - 7 * INT(i / 7)

IF torol = 1 THEN PRESET (x(i, m(i)), y(i, m(i)))
NEXT i

' m1 = 3: CALL absolute(m1, m2, m3, m4, mouse)
' IF m2 <> 0 THEN END
' IF m3 <> mx OR m4 <> my THEN END
' mx = m3
' my = m4

GOTO ciklus


