dz = [1, I-1, -I] z = 0 d = 0 n = -1 move(printonly=0) = { if (!printonly, z += dz[1+d%#dz]; ); print (n++ " " real(z)); } dd = [+1, -1, -1, +1, +1, -1] F(r) = { if (r-->=0, F(r); for (k=1, #dd, d+=dd[k]; F(r); ), move() ); } move(1) F(5) quit