CONST NUMPOINTS = 2
TYPE points
x AS INTEGER
y AS INTEGER
xd AS INTEGER
yd AS INTEGER
END TYPE
DIM SHARED p(NUMPOINTS) AS points
DIM SHARED op(NUMPOINTS) AS points
FOR i% = 0 TO NUMPOINTS
p(i%).xd = -1: p(i%).yd = 1
p(i%).x = INT(RND * 640)
p(i%).y = INT(RND * 480)
NEXT i%
p(0).x = p(NUMPOINTS).x: p(0).y = p(NUMPOINTS).y
SCREEN 12
DO
CIRCLE (ocx%, ocy%), 10, 0
CIRCLE (cx%, cy%), 10, 10
ocx% = cx%: ocy% = cy%
cx% = 0: cy% = 0
colour% = INT(RND * 15) + 1
FOR i% = 1 TO NUMPOINTS
LINE (op(i% - 1).x, op(i% - 1).y)-(op(i%).x, op(i%).y), 0
LINE (p(i% - 1).x, p(i% - 1).y)-(p(i%).x, p(i%).y), colour%
cx% = cx% + p(i%).x: cy% = cy% + p(i%).y
NEXT i%
cx% = cx% \ (NUMPOINTS): cy% = cy% \ (NUMPOINTS)
FOR i% = 0 TO NUMPOINTS
op(i%).x = p(i%).x: op(i%).y = p(i%).y
p(i%).x = p(i%).x + p(i%).xd
p(i%).y = p(i%).y + p(i%).yd
IF p(i%).x < 5 THEN p(i%).xd = 1
IF p(i%).x > 635 THEN p(i%).xd = -1
IF p(i%).y < 5 THEN p(i%).yd = 1
IF p(i%).y > 475 THEN p(i%).yd = -1
NEXT i%
LOOP UNTIL INKEY$ <> ""
|