首页 > 解决方案 > 如何在二维数组中创建迷宫

问题描述

我正在解决一个关于解决迷宫的问题并打印将问题弹出到我脑海中的路径.. 是否有任何算法可以创建迷宫。

假设我们有一个任意大小的二维数组

for ex:array = [
[1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1]]   

1 -> no wall  0 -> wall

我只是想创建迷宫...没有解决

虽然我确实在维基百科上找到了一些算法,比如递归回溯,但我不明白如何在节点中应用这些算法。

所以任何人都可以帮助我..?

标签: python

解决方案


快速回答:

  1. 将整个地图设置为所有墙壁。选择一个入口和一个出口,将这两个位置设置为无墙;
  2. 随机选择一堵墙并将其翻转为无墙;
  3. 用 BFS/DFS 测试出口是否可以从入口进入;
  4. 如果无法访问,则转到 2,否则转到 5;
  5. 迷宫已成功创建。

推荐阅读