深度优先算法生成迷宫——Python实现
来源:互联网 发布:stm32f030编程手册 编辑:程序博客网 时间:2024/05/18 15:08
import random#warning: x and y confusingsx = 10sy = 10dfs = [[0 for col in range(sx)] for row in range(sy)]maze = [[' ' for col in range(2*sx+1)] for row in range(2*sy+1)]#1:up 2:down 3:left 4:rightoperation = {1:(0,-1),2:(0,1),3:(-1,0),4:(1,0)}direction = [1, 2, 3, 4]stack = []for i in range(2*sx+1): if i%2 == 0: for j in range(2*sx+1): maze[i][j] = '#'for i in range(2*sy+1): if i%2 == 0: for j in range(2*sy+1): maze[j][i] = '#'def show(graph): for i in graph: for j in i: print j, printdef showRouter(stack): RGragh = [[0 for col in range(sx)] for row in range(sy)] for (x, y) in stack: RGragh[y][x] = 1 show(RGragh) printdef generateMaze(start): x, y = start dfs[y][x] = 1 random.shuffle(direction) for d in direction: px, py = (x + y for x, y in zip(start, operation[d])) if px < 0 or px >= sx or py < 0 or py >= sy: pass else: if dfs[py][px] is not 1: mx = 2*x + 1 my = 2*y + 1 if d == 1: maze[my-1][mx] = ' ' elif d == 2: maze[my+1][mx] = ' ' elif d == 3: maze[my][mx-1] = ' ' elif d == 4: maze[my][mx+1] = ' ' generateMaze((px,py))generateMaze((0,0))show(dfs)show(maze)
0 0
- 深度优先算法生成迷宫——Python实现
- 深度优先——迷宫算法
- 深度优先遍历之迷宫生成算法
- python实现 深度优先算法
- 生成迷宫的深度优先遍历算法的非递归实现
- 深度优先迷宫生成类
- 深度优先搜索生成迷宫
- 迷宫代码:深度优先算法
- 深度优先搜索迷宫路径算法的实现
- 深度优先搜索——迷宫
- 走迷宫——深度优先搜索
- 迷宫找最短路径 深度优先—C
- 深度优先+回溯法生成随机迷宫
- 迷宫最短路径 深度优先搜索—C—python
- 深度优先算法--之模拟迷宫
- 关于用深度优先算法生成迷宫与寻找路径的一些回忆
- 三大迷宫生成算法 (Maze generation algorithm) -- 深度优先,随机Prim,递归分割
- 基于广度优先算法迷宫生成类
- iOS 6.0之前 UITapGestureRecognizer手势和UIButton 点击事件冲突
- Java web后台插入数据库中文乱码问题解决
- Robotium源码分析之Instrumentation进阶
- 企业应该立马辞退的10种员工,你还安全吗?
- 如何将sqlserver表中的数据导出sql语句或生成insert into语句
- 深度优先算法生成迷宫——Python实现
- POST与GET的区别及RESTful
- Poj 1170 题解
- Robotium源码分析之运行原理
- UITapGestureRecognizer 与 UIButton 按钮 无响应的bug
- Application的用法以及安卓入口问题的理解
- 移植MonkeyRunner的图片对比和获取子图功能的实现-UiAutomator/Robotium篇
- 三十分钟掌握STL
- flask/python超实用文档