CLS SCREEN 12 RANDOMIZE TIMER bottom = 479 top = bottom - 25 right = 639 left = 0 DO WHILE top > 0 x = INT(RND * (right + 1)) y = top flag = 0 r = 3 - INT(SQR(SQR(256 - RND * 256))) REM CIRCLE (x, y), r, 15, 0, 6.28, 1 DO WHILE flag = 0 path = INT(RND * 5) IF path = 0 THEN newx = x - 1: newy = y : GOSUB movepixel IF path = 1 THEN newx = x - 1: newy = y + 1: GOSUB movepixel IF path = 2 THEN newx = x : newy = y + 1: GOSUB movepixel IF path = 3 THEN newx = x + 1: newy = y + 1: GOSUB movepixel IF path = 4 THEN newx = x + 1: newy = y : GOSUB movepixel LOOP CIRCLE (x, y), r, 15, 0, 6.28, 1 FOR i = left TO right IF (POINT(i, top + 5) = 15) THEN top = top - 1 NEXT i LOOP END movepixel: IF newx < left THEN newx = left IF newx > right THEN newx = right REM CIRCLE (x, y), r, 0, 0, 6.28, 1 REM CIRCLE (newx, newy), r, 15, 0, 6.28, 1 x = newx y = newy IF POINT(x - (r + 1), y) = 15 THEN flag = 1: RETURN IF POINT(x - r, y + r + 1) = 15 THEN flag = 1: RETURN IF POINT(x, y + r + 1) = 15 THEN flag = 1: RETURN IF POINT(x + r, y + r + 1) = 15 THEN flag = 1: RETURN IF POINT(x + (r + 1), y) = 15 THEN flag = 1: RETURN IF y = bottom THEN flag = 1: RETURN RETURN