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)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。