var p, moto:Array;

[setup]{
moto = new Array();
for(var i = 0; i < 10; ++i){
for(var j = 0; j < 10; ++j){
moto[i*10+j] = new point(100+i*10, 100+j*10);
}
}

p = new Array();
for(var i = 0; i < moto.length; ++i){
p[i] = new point(moto[i].x, moto[i].y);
}
}

[paint]{
clearAll();
setAlpha(30);
for(var i = 0; i < moto.length; ++i){
drawLine(moto[i], p[i])
}
setAlpha(100);
for(var i = 0; i < moto.length; ++i){
fillOval(p[i], 2, 2);
}
}

[always]{
for(var i = 0; i < p.length; ++i){
var dist = distance(moto[i], mouse);
if(dist < 30){
p[i].pushTo(mouse);
}else{
p[i].pushTo(moto[i]);
}
}
}