# 9C import math g.norefresh() g.antialias(0) g.paper(0) g.refresh() def field(r, color=100): hit = 'nohit' m1 = g.getMouse(1) m2 = g.getMouse(2) boundaries = (100-r-1,100+r+1) if (m1 in boundaries and m2 <= 100+r+1 and m2 >= 100-r-1) or (m2 in boundaries and m1 <= 100+r+1 and m1 >= 100-r-1): hit = (m1,m2) g.pen(color) g.line(100-r,100-r,100+r,100-r) g.line(100-r,100-r,100-r,100+r) g.line(100+r,100-r,100+r,100+r) g.line(100-r,100+r,100+r,100+r) g.line(100-r-1,100-r-1,100+r+1,100-r-1) g.line(100-r-1,100-r-1,100-r-1,100+r+1) g.line(100+r+1,100-r-1,100+r+1,100+r+1) g.line(100-r-1,100+r+1,100+r+1,100+r+1) g.refresh() return hit def connect(hits,color=100): g.pen(color) numhits = len(hits) numlines = numhits*(numhits-1)/2 hitsleft = hits for hit1 in hits: hitsleft = hits[1:] for hit2 in hitsleft: g.line(hit1[0],hit1[1],hit2[0],hit2[1]) g.refresh() hits = [] i = 1 while not g.getMouse(3): g.paper(0) i = i % 99 + 1 hit = field(i,10) if hit != 'nohit': hits.append(hit) connect(hits) g.pause(3) i = 1 g.paper(100) g.antialias(1) connect(hits,0) g.refresh()