【发布时间】:2014-01-12 18:46:55
【问题描述】:
我不小心在我的另一个帐户上发布了这个问题,所以我删除了帖子并重新发布到这个帐户上。
所以我想创建一个有趣的迷宫生成算法,但我遇到了一点问题。我编写的算法放入了无法到达且没有出口的空间。可能是什么问题?
这就是我的意思
# # # # # # # # # # # # # # # # # # # # #
# . . . . . # . # . . . # . # . # . . . #
# . # # # . # . # # # . # # # . # # # # #
# . . . # . # . # . . . . . # . . . . . #
# # # . # . # . # # # # # . # # # . # # #
# . . . # . # . . . . . # . # . # . # . #
# . # # # . # # # # # . # # # . # . # . #
# . # . # . . . . . # . . . . . . . # . #
# . # . # . # # # # # # # . # # # . # # #
# . # . # . . . . . . . # . . . # . # . #
# . # . # # # # # # # . # . # . # # # . #
# . # . # . . . . . . . # . # . # . . . #
# # # # # . # # # # # # # . # . # . # # #
# . # . . . # . . . . . . . # . # . # . #
# . # # # . # . # # # # # # # # # . # # #
# . . . # . . . # . # . . . . . . . # . #
# # # . # # # . # # # # # # # . # # # . #
# . # . # . . . . . # . . . # . . . . . #
# # # . # . # # # . # . # # # . # # # . #
# . # . . . # . # . # . # . . . . . # . #
# # # # # # # # # # # # # # # # # # # # #
这是我的代码
说明:
创建一个由完全连接的单元组成的迷宫。如前所述 0 up, 1 down, 2 right, 3 left, orientTo 记录 dfs 是否向上/向下/向左/向右到达当前单元格。
在 mazeGen 函数中:生成你来自的单元格,现在移除当前单元格和最后一个单元格之间的墙。生成当前单元格的所有邻居并将它们随机排列到一个数组中,数组保存 x,y,以及 dfs 移动到该邻居单元格的方式。现在遍历这个数组并使用这些邻居值递归调用 dfs。
【问题讨论】:
-
你为什么有多个账户?
-
删除后,您失去了我的评论。我再说一遍:我还没有检查还有什么问题,但是您的“随机排列”可能会将同一个邻居放入多个插槽中,我怀疑这就是您的意图。随机播放。
-
这是一个意外,我在programmers.stackexchange上按了用facebook登录,创建了一个全新的帐户,然后帖子被迁移到这里。所以我只是删除它并重新发布。
-
还有keshlam,真的吗?我问这个是因为 if(points[j][0]..... 行确保它没有,因为它检查条目是否已经添加到另一个位置。
-
...好吧,你可能是对的。这是做你想做的事的一种由内而外的方式,但是......