标题:蛇形方阵,30分悬赏
只看楼主
粥冻鱼
Rank: 1
等 级:新手上路
帖 子:2
专家分:7
注 册:2022-2-22
得分:0 
#初始化数组 暂用列表代替
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


'''
2022-02-22 17:36



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-508326-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019532 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved