777 CLEAR
RANDOMIZE TIMER
CLS
SCREEN 12
WINDOW (-1000 * 4 / 3, 1000)-(1000 * 4 / 3, -1000)
G = 1
p = 2
e = -1333

DIM x(1 TO p)
DIM y(1 TO p)
DIM m(1 TO p)
DIM xvi(1 TO p)
DIM yvi(1 TO p)
DIM c(1 TO p)
DIM xv(1 TO p)
DIM yv(1 TO p)

'F = G*(m1 * m2) / r^2

FOR i = 1 TO p
c(i) = INT(RND * 15) + 1
m(i) = 100 ^ (RND * 1)
x(i) = (RND * 2000) - 1000
y(i) = (RND * 2000) - 1000
xvi(i) = 0'(RND * 1) - .5
yvi(i) = 0'(RND * 1) - .5
xv(i) = xvi(i)
yv(i) = yvi(i)
NEXT i

x(1) = 0
x(2) = 0
y(1) = 0
y(2) = 800
m(1) = 15
m(2) = 1
xv(1) = 0
xv(2) = .1
yv(1) = 0
yv(2) = 0
c(1) = 3
c(2) = 15

1 FOR i = 1 TO (p - 1)
FOR j = 1 TO p
IF j <= i THEN GOTO 10

r = SQR(((x(i) - x(j)) ^ 2) + ((y(i) - y(j)) ^ 2))
dx = x(j) - x(i)
dy = y(j) - y(i)

Fa = G * (m(i) * m(j)) / (r ^ 2)
Fx = Fa * dx / r
Fy = Fa * dy / r

xv(i) = xv(i) + (Fx / m(i))
yv(i) = yv(i) + (Fy / m(i))

xv(j) = xv(j) + (-Fx / m(j))
yv(j) = yv(j) + (-Fy / m(j))

10 NEXT j
NEXT i

FOR i = 1 TO p
x(i) = x(i) + xv(i)
y(i) = y(i) + yv(i)
NEXT i

'CLS
FOR i = 1 TO p
COLOR c(i)
'CIRCLE (x(i), y(i)), 15
LINE (x(i), y(i))-(x(i), y(i))

'n = 1
'COLOR 7
'LINE (-1500, 0)-(1500, 0)
'COLOR 9
'LINE (e, 100 * (10 ^ (2 / n)) * xv(n))-(e, 100 * (10 ^ (2 / n)) * xv(n))
'COLOR 5
'LINE (e, 100 * (10 ^ (2 / n)) * yv(n))-(e, 100 * (10 ^ (2 / n)) * yv(n))
'e = e + .05
'COLOR c(i)

'LOCATE i * 5, 1
'PRINT x(i), y(i); m(i)
'PRINT xv(i), yv(i)
'PRINT xvi(i), yvi(i)
'SLEEP
'FOR t = 1 TO 1000
'NEXT t
NEXT i
a$ = INKEY$
IF a$ = "x" THEN GOTO 777
IF a$ = "l" THEN LOCATE 1, 1: PRINT yv(1), yv(2)
GOTO 1


'FOR i = 1 TO (p - 1)
'FOR j = 1 TO p

'IF j <= i THEN GOTO 10

'10 next j
'NEXT i





















