#include<stdio.h>
#include<string.h>
int d[4][2]={{0,1},{1,0},{0,-1},{-1,0}},r[2]={1,-1},s[105][105];
int main(){
int t,n,m,i,j,k,add,x,y;
scanf("%d",&t);
while(t--){
memset(s,0,sizeof(s));
scanf("%d%d",&n,&m);
m--;
if(m==0) k=0;
else k=3;
x=y=0;
s[x][y]=1;
for(add=2;add<=n*n;add++){
while(!(x+d[k][0]>=0 && x+d[k][0]<n && y+d[k][1]>=0 && y+d[k][1]<n && s[x+d[k][0]][y+d[k][1]]==0)) k=(k+r[m]+4)%4;
x+=d[k][0],y+=+d[k][1];
s[x][y]=add;
}
for(i=0;i<n;i++){
for(j=0;j<n;j++)
printf("%5d",s[i][j]);
puts("");
}
}
}
沒有留言:
張貼留言