(f=(a,b,c,d)=>{if((b=a/2)<1)return;c=.5*a;for(y=b;y<max;y+=a)for(x=b;x<max;x+=a)grid[x][y]=A([get(x-b,y-b),get(x+b,y-b),get(x+b,y+b),get(x-b,y+b)])+r()*c*2-c;for(y=0;y<max;y+=b)for(x=(y+b)%a;x<max;x+=a)grid[x][y]=A([get(x,y-b),get(x+b,y),get(x,y+b),get(x-b,y)])+r()*c*2-c;f(a/2);})(max)