Skip to main content
deleted 2 characters in body
Source Link
ugoren
  • 17.6k
  • 5
  • 54
  • 75

C, 337336 chars

I'm sure there's room for improvement.

char*a="<^>V|-|-/\\/\\ppdd(())[[]]{{}}MMWW9966",*p,*q; n,x,y;y,r; z(c,r) { return(q=strchr(a,c))?a[(q-a&-4)+(q-a+r&3)]:c; } #define A(r)(r&3^3?1-r%4:0)* f(r){ return A(r)x+A(~-r)y+(r&2)/2*~-n; } main(r){ scanf("%d\n",&n); p=q=malloc(n*n+1); for(y=n;y--;q+=n)gets(q); scanf("%d",&r); for(r/=90;++y<n;puts(""))for(x=0;x<n;x++)putchar(z(p[f(r)+n*f(r+1)],r)); } 

C, 337 chars

I'm sure there's room for improvement.

char*a="<^>V|-|-/\\/\\ppdd(())[[]]{{}}MMWW9966",*p,*q; n,x,y; z(c,r) { return(q=strchr(a,c))?a[(q-a&-4)+(q-a+r&3)]:c; } #define A(r)(r&3^3?1-r%4:0)* f(r){ return A(r)x+A(~-r)y+(r&2)/2*~-n; } main(r){ scanf("%d\n",&n); p=q=malloc(n*n+1); for(y=n;y--;q+=n)gets(q); scanf("%d",&r); for(r/=90;++y<n;puts(""))for(x=0;x<n;x++)putchar(z(p[f(r)+n*f(r+1)],r)); } 

C, 336 chars

I'm sure there's room for improvement.

char*a="<^>V|-|-/\\/\\ppdd(())[[]]{{}}MMWW9966",*p,*q; n,x,y,r; z(c){ return(q=strchr(a,c))?a[(q-a&-4)+(q-a+r&3)]:c; } #define A(r)(r&3^3?1-r%4:0)* f(r){ return A(r)x+A(~-r)y+(r&2)/2*~-n; } main(){ scanf("%d\n",&n); p=q=malloc(n*n+1); for(y=n;y--;q+=n)gets(q); scanf("%d",&r); for(r/=90;++y<n;puts(""))for(x=0;x<n;x++)putchar(z(p[f(r)+n*f(r+1)],r)); } 
Source Link
ugoren
  • 17.6k
  • 5
  • 54
  • 75

C, 337 chars

I'm sure there's room for improvement.

char*a="<^>V|-|-/\\/\\ppdd(())[[]]{{}}MMWW9966",*p,*q; n,x,y; z(c,r) { return(q=strchr(a,c))?a[(q-a&-4)+(q-a+r&3)]:c; } #define A(r)(r&3^3?1-r%4:0)* f(r){ return A(r)x+A(~-r)y+(r&2)/2*~-n; } main(r){ scanf("%d\n",&n); p=q=malloc(n*n+1); for(y=n;y--;q+=n)gets(q); scanf("%d",&r); for(r/=90;++y<n;puts(""))for(x=0;x<n;x++)putchar(z(p[f(r)+n*f(r+1)],r)); }