dz = [1, I, I-1, -1, -I, 1-I] z = 0 d = 0 n = 0 move(printonly=0) = { if (!printonly, z += dz[1+(-d)%#dz]; ); print (n " " imag(z)); n++; } \\ A -> A-B--B+A++AA+B- A(r) = { if (r-->=0, A(r); d--; B(r); d--; d--; B(r); d++; A(r); d++; d++; A(r); A(r); d++; B(r); d--, move() ); } \\ B -> +A-BB--B-A++A+B B(r) = { if (r-->=0, d++; A(r); d--; B(r); B(r); d--; d--; B(r); d--; A(r); d++; d++; A(r); d++; B(r), move() ); } move(1) A(4) quit