使用prime算法生成迷宫
使用递归算法走迷宫
使用pygame做可视化展示
游戏截屏
prime算法生成迷宫
递归算法解迷宫
背景如下:
迷宫以二维数组表示,其中0为路,1为墙,玩家只能在路上行走,不能穿越墙。
由于逻辑比较简单,就直接自己实现了,主要思路如下:
1. 玩家初始位置定位在迷宫入口
if __name__ == '__main__':
# 生成迷宫与入口
size = random_maze_size()
MAZE, ENTRANCE, EXIT = generate_maze(size, size)
SOLVE_THREAD = threading.Thread(target=solve_maze, args=(MAZE, ENTRANCE, EXIT, draw_maze))
SOLVE_THREAD.start()
2. 获取玩家上下左右四个相邻位置的值和位置
# 单元格类型
# 0 - 路,1 - 墙,2-走过的路,4-死胡同,不在迷宫里或是已经走过又回退回来,说明此路不通
class CellType:
ROAD = 0
WALL = 1
WALKED = 2
DEAD = 3
def valid(maze, x, y):
if x < 0 or y < 0: