import math
n1 = int(input())
for i in range(n1):
m,d1 = map(int,input().split())
n = m**2
if d1==1:
d=[[0]*m for _ in range(m)]
k = 1
r,c = 0,0
dirn = 0
dirs = [[0,1],[1,0],[0,-1],[-1,0]]
while k<=n:
d[r][c]=k
k+=1
nr,nc = r+dirs[dirn][0],c+dirs[dirn][1]
if nr<m and nc<m and d[nr][nc]==0 :
r,c = nr,nc
else:
dirn=(dirn+1)%4
r,c = r+dirs[dirn][0],c+dirs[dirn][1]
for row in d:
formatted_row = " ".join(str(num).rjust(5) if num!=0 else " "*5 for num in row)
print(formatted_row)
print()
else:
d=[[0]*m for _ in range(m)]
k = 1
r,c = 0,0
dirn = 0
dirs = [[1,0],[0,1],[-1,0],[0,-1]]
while k<=n:
d[r][c]=k
k+=1
nr,nc = r+dirs[dirn][0],c+dirs[dirn][1]
if nr<m and nc<m and d[nr][nc]==0 :
r,c = nr,nc
else:
dirn=(dirn+1)%4
r,c = r+dirs[dirn][0],c+dirs[dirn][1]
for row in d:
formatted_row = " ".join(str(num).rjust(5) if num!=0 else " "*5 for num in row)
print(formatted_row)
print()
沒有留言:
張貼留言