allocate mem(2^30) G = matrix(2*W=1000, 2*W) flip(z) = my (x=real(z)+W, y=imag(z)+W); G[x,y]=1-G[x,y] { z = 0; d = I; black = 0; for (n=0, 500, print (n " " black); f = flip(z); black -= (-1)^f; if (real(z)%2==0, \\ octogonal cell if (f, d *= 1+I, d *= 1-I, ), \\ square cell if (f, d *= I, d *= -I ); ); d /= gcd(real(d),imag(d)); if (real(z)%2==0, \\ octogonal cell if (abs(d)==1, z += 2*d, z += d ), \\ square cell z += d ); ); } quit