' Golyo porog a sikon. Rola veletlenszeru magassagban sardarabok
' valnak le (elhany. tomeguek stb.) Felulnezete't latod a kepernyon.
' Az ures gyuruk a lepeskoz (0,05) miatt jonnek letre.

SCREEN 9
RANDOMIZE TIMER
pi = 3.1415926#
dt = .01
n = 20
hossz = 4000
finomsag = 100
torzitas = .75

DIM x(n)
DIM y(n)
DIM z(n)
DIM vx(n)
DIM vy(n)
DIM vz(n)
DIM gyuru(200)

r = 25
omega = 2
g = 10
CIRCLE (400, 200), 25
CIRCLE (400, 200), 150, 12

elore:
FOR i = 1 TO n
IF z(i) > 0 THEN GOTO rendes
osszes = osszes + 1
tavolsag = SQR((400 - x(i)) ^ 2 + ((200 - y(i)) / torzitas) ^ 2)
IF tavolsag < 200 THEN gyuru(INT(tavolsag / 2)) = gyuru(INT(tavolsag / 2)) + 1
IF INT(osszes / 20) < osszes / 20 OR osszes = 0 THEN GOTO ide

SOUND 2000, .1
FOR j = 1 TO 100
f = 300 / finomsag * j
h = hossz * gyuru(j) / osszes
LINE (1, f)-(h, f), 10 + SGN(j / 10 - INT(j / 10))
LINE (h, f)-(240, f), 0
NEXT j
CIRCLE (400, 200), 25
LOCATE 2, 50: PRINT osszes

ide:
z(i) = RND * 2 * r
vz(i) = 0
sugar = SQR(r ^ 2 - (r - z(i)) ^ 2)
szog = RND * 2 * pi
x(i) = 400 + sugar * COS(szog)
y(i) = 200 - sugar * SIN(szog) * torzitas
vx(i) = -r * omega * SIN(szog)
vy(i) = -r * omega * COS(szog) * torzitas

rendes:
PRESET (x(i), y(i))
x(i) = x(i) + vx(i) * dt
y(i) = y(i) + vy(i) * dt
z(i) = z(i) + vz(i) * dt - g / 2 * dt ^ 2
vz(i) = vz(i) - g * dt
PSET (x(i), y(i)), 9 + 5 * SGN(z(i) + ABS(z(i)))
NEXT i
a$ = INKEY$
IF a$ = CHR$(13) THEN END
GOTO elore





