'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