我想实现本周在课堂上学到的一些图形和生成树的东西,所以我创建了一个基于Prim算法的迷宫生成算法。现在,我尝试创建一个算法来有效地解决迷宫。到目前为止,我已经进行了洪水填充,最终解决了迷宫问题,但效率非常低。我现在正试图找到一种方法将迷宫转换成图形以便使用Dijkstra的算法或DFS,但我很难过。迷宫存储在二进制数组中,其中1是墙,0是开放空间。迷宫始终从第一行中的唯一0开始,到最后一行中的唯一零结束。迷宫如下图所示存储。
static int maze2[][] = {{1, 1, 1, 1, 1, 0, 1, 1, 1, 1},
{1, 1, 1, 0, 0, 0, 0, 0, 0, 1},
{1, 0, 0, 0, 1, 0, 1, 0, 0, 1},
{1, 0, 0, 1, 1, 0, 1, 1, 0, 1},
{1, 1, 0, 0, 1, 0, 1, 1, 0, 1},
{1, 0, 0, 1, 1, 0, 1, 0, 0, 1},
{1, 1, 0, 0, 1, 0, 1, 0, 1, 1},
{1, 0, 0, 1, 1, 0, 1, 0, 0, 1},
{1, 1, 0, 0, 1, 0, 1, 0, 1, 1},
{1, 1, 1, 1, 1, 0, 1, 1, 1, 1}};
您不会将迷宫转换为图表。您只需将其视为图形。
编写算法(BFS,DFS等)时,只需要: