DECLARE SUB delay (seconds!) TYPE Dot x AS INTEGER y AS INTEGER xvel AS SINGLE yvel AS SINGLE col AS INTEGER END TYPE DIM Dots(0 TO 255) AS Dot SCREEN 13 FOR y = 0 TO 15 FOR x = 0 TO 15 PSET (x + 160, y + 100), RND * 256 Dots(16 * y + x).x = x + 160 Dots(16 * y + x).y = y + 100 Dots(16 * y + x).col = POINT(x + 160, y + 100) Dots(16 * y + x).xvel = RND * 10 - 5 Dots(16 * y + x).yvel = RND * 10 - 5 NEXT NEXT FOR c = 1 TO 100 FOR x = 0 TO 255 PSET (Dots(x).x, Dots(x).y), 0 Dots(x).x = Dots(x).x + Dots(x).xvel Dots(x).yvel = Dots(x).yvel + 1 IF Dots(x).y > 200 THEN Dots(x).yvel = -Dots(x).yvel Dots(x).y = Dots(x).y + Dots(x).yvel PSET (Dots(x).x, Dots(x).y), Dots(x).col delay 0.00015 NEXT NEXT SUB delay (seconds!) start# = TIMER DO WHILE TIMER - start# < seconds! LOOP END SUB