#初始化数组 暂用列表代替
a=[]
for x in range(20):
b=[]
for y in range(20):
b.append(0)
a.append(b)
m=9 #行
n=9 #列
dx=[-1,0,1,0]
dy=[0,1,0,-1] # dx,dy用于调整方向
x=0
y=n-1
d=1
for q in range(1,m*n+1):
a[x][y]=q
ax=x+dx[d]
by=y+dy[d] #ax,by 记录要移动到的位置
if ax<0 or ax>=m or by<0 or by>=n or a[ax][by]: #边界处理,满足任意一种条件 即越界,需要改变方向
d=(d+1)%4 #顺时针改变方向
ax=x+dx[d]
by=y+dy[d]
x=ax
y=by
for x in range(m):
for y in range(n):
print("%4d"%a[x][y],end="")
print()
'''
========================== RESTART: D:/python310/t1.py =========================
25 26 27 28 29 30 31 32 1
24 51 52 53 54 55 56 33 2
23 50 69 70 71 72 57 34 3
22 49 68 79 80 73 58 35 4
21 48 67 78 81 74 59 36 5
20 47 66 77 76 75 60 37 6
19 46 65 64 63 62 61 38 7
18 45 44 43 42 41 40 39 8
17 16 15 14 13 12 11 10 9
'''
a=[]
for x in range(20):
b=[]
for y in range(20):
b.append(0)
a.append(b)
m=9 #行
n=9 #列
dx=[-1,0,1,0]
dy=[0,1,0,-1] # dx,dy用于调整方向
x=0
y=n-1
d=1
for q in range(1,m*n+1):
a[x][y]=q
ax=x+dx[d]
by=y+dy[d] #ax,by 记录要移动到的位置
if ax<0 or ax>=m or by<0 or by>=n or a[ax][by]: #边界处理,满足任意一种条件 即越界,需要改变方向
d=(d+1)%4 #顺时针改变方向
ax=x+dx[d]
by=y+dy[d]
x=ax
y=by
for x in range(m):
for y in range(n):
print("%4d"%a[x][y],end="")
print()
'''
========================== RESTART: D:/python310/t1.py =========================
25 26 27 28 29 30 31 32 1
24 51 52 53 54 55 56 33 2
23 50 69 70 71 72 57 34 3
22 49 68 79 80 73 58 35 4
21 48 67 78 81 74 59 36 5
20 47 66 77 76 75 60 37 6
19 46 65 64 63 62 61 38 7
18 45 44 43 42 41 40 39 8
17 16 15 14 13 12 11 10 9
'''