Python深度优先算法生成迷宫
本文实例为大家分享了Python深度优先算法生成迷宫,供大家参考,具体内容如下
importrandom
#warning:xandyconfusing
sx=10
sy=10
dfs=[[0forcolinrange(sx)]forrowinrange(sy)]
maze=[[''forcolinrange(2*sx+1)]forrowinrange(2*sy+1)]
#1:up2:down3:left4:right
operation={1:(0,-1),2:(0,1),3:(-1,0),4:(1,0)}
direction=[1,2,3,4]
stack=[]
foriinrange(2*sx+1):
ifi%2==0:
forjinrange(2*sx+1):
maze[i][j]='#'
foriinrange(2*sy+1):
ifi%2==0:
forjinrange(2*sy+1):
maze[j][i]='#'
defshow(graph):
foriingraph:
forjini:
printj,
print
defshowRouter(stack):
RGragh=[[0forcolinrange(sx)]forrowinrange(sy)]
for(x,y)instack:
RGragh[y][x]=1
show(RGragh)
print
defgenerateMaze(start):
x,y=start
dfs[y][x]=1
random.shuffle(direction)
fordindirection:
px,py=(x+yforx,yinzip(start,operation[d]))
ifpx<0orpx>=sxorpy<0orpy>=sy:
pass
else:
ifdfs[py][px]isnot1:
mx=2*x+1
my=2*y+1
ifd==1:
maze[my-1][mx]=''
elifd==2:
maze[my+1][mx]=''
elifd==3:
maze[my][mx-1]=''
elifd==4:
maze[my][mx+1]=''
generateMaze((px,py))
generateMaze((0,0))
show(dfs)
show(maze)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
热门推荐
1 如何训练狗狗不叫
2 训练狗狗不叫
3 训练狗狗随行
4 怎么训练狗狗不叫
7 训练比熊狗狗教程
10 上海狗狗训练
11 怎么训练狗狗上厕所
12 训练狗狗趴下
13 狗狗服从训练
14 训练狗狗拒食
15 训练狗狗笑
16 训练狗狗大便
17 训练狗狗立
18 训练狗狗捡东西