SCREEN 9
RANDOMIZE TIMER

eleje:
CLS

dt = .005
x0 = 300: y0 = 250
r = 100
r2 = 50
m = (RND + 1) * 10
n = (RND + 1) * 10
d = (RND + 1) * 40
e = (RND + 1) * 40
bigyo = m / 3
bigyo2 = n / 3

xx = x0
x = x0
yy = y0
y = y0
vx = (RND - .5) * 100
vy = (RND - .5) * 100
wx = (RND - .5) * 100
wy = (RND - .5) * 100
g = 20

ujra:

tav = SQR((xx - x0) ^ 2 + (yy - y0) ^ 2)
taw = SQR((xx - x) ^ 2 + (yy - y) ^ 2)

IF tav < r THEN szorzo = 0 ELSE szorzo = 1
IF tav = 0 THEN fy = -m * g: GOTO tovabb
IF taw < r2 THEN szorzo2 = 0 ELSE szorzo2 = 1
IF taw = 0 THEN gy = -n * g: GOTO tovabb

gx = -e * (x - xx) / taw * (taw - r2) * szorzo2
gy = -e * (y - yy) / taw * (taw - r2) * szorzo2 - n * g
fx = -d * (xx - x0) / tav * (tav - r) * szorzo - gx
fy = -d * (yy - y0) / tav * (tav - r) * szorzo - m * g - gy

RugEa = d * szorzo * (tav - r) ^ 2 / 2 + e * szorzo2 * (taw - r2) ^ 2 / 2
PotEa = (m * y + n * yy) * g
Ea = RugEa + PotEa
LOCATE 1, 1: PRINT "Energia:"; INT(Ea); "     "

tovabb:
vx = vx + fx * dt / m
vy = vy + fy * dt / m
xx = xx + vx * dt
yy = yy + vy * dt

wx = wx + gx * dt / n
wy = wy + gy * dt / n
x = x + wx * dt
y = y + wy * dt

a$ = INKEY$
IF a$ = CHR$(13) THEN GOTO eleje

CIRCLE (xe, 400 - ye), bigyo, 0
LINE (x0, 400 - y0)-(xe, 400 - ye), 0
CIRCLE (xe2, 400 - ye2), bigyo2, 0
LINE (xe, 400 - ye)-(xe2, 400 - ye2), 0

CIRCLE (xx, 400 - yy), bigyo, 14
LINE (x0, 400 - y0)-(xx, 400 - yy), 9 - szorzo * 3
CIRCLE (x, 400 - y), bigyo2, 11
LINE (x, 400 - y)-(xx, 400 - yy), 9 - szorzo2 * 3

xe = xx: ye = yy
xe2 = x: ye2 = y

GOTO ujra

