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