#include #define ORDER 3 #define SIZE 15 char m[SIZE][SIZE+1]; int x,y; int vx,vy; unsigned vc; void t(int m) { vy^=vx; vx^=vy; vy^=vx; vy*=1-m; vx*=m-1; vc++; } void forward() { m[y][x]='+'; x+=vx; y+=vy; m[y][x]="-|"[vc&1]; x+=vx; y+=vy; } void h(int o, int m) { if(o==0) return; t(2-m); h(o-1,2-m); forward(); t(m); h(o-1,m); forward(); h(o-1,m); t(m); forward(); h(o-1,2-m); t(2-m); } int main() { for(y=0;y