问题标签 [maze]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何清理我用 Java 编写的这个方法?
我正在编写一个迷宫生成器。我有一个“细胞”类,如下所示:
我的程序中的迷宫只是一个二维单元格数组。创建数组后,我手动进入并设置对相邻单元格(北、南、东、西)的所有引用。
我要清理的是removeRandomWall()。假设随机选择一个其访问标志设置为 false 的相邻单元格,并移除该单元格和连接它们的相邻单元格中的墙。
所以,它需要考虑所有没有被访问过的相邻单元格,随机选择一个,然后将这个单元格中的墙和相邻的一个设置为false,这样它们之间就有了一条路径。我在上面尝试过,但看起来很笨拙。
谁能帮我吗?
java - 我怎么能停止在我的 ascii 迷宫中打印墙壁的两面?
我已经编写了一些为我生成迷宫的代码。迷宫由 (nxn) 个单元组成,每个单元都有一个布尔值来表示一堵墙(北、南、东西)。
它工作正常,我编写了下面的函数来打印出迷宫:
然而,由于单元格共享墙壁,我在打印功能中生成了一种双壁走廊外观:
我应该如何修改我的打印功能,使其看起来像:
我担心当我最终开始使用实际图形而不是 ascii 绘制迷宫时,我会面临类似的问题。
如何修改我的 printMaze 方法,使其从第一个示例变为第二个示例?
万一有人对我的类生成这些源代码感兴趣,请点击此处。
java - Java:实现一个可绘制类
我正在尝试用 Java 制作迷宫游戏。
Explorer 类代表用户,DrawableExplorer 是图形化代表用户的代码。DrawableExplorer 实现了 Drawable 接口,其中包含:
这编译成功但是,我无法弄清楚为什么我的 DrawableExplorer 类不是:
它要求返回类型,但我的方法不是无效的吗?
编译器错误消息显示“方法声明无效;需要返回类型”
algorithm - 穿越迷宫的算法
我们目前正在编写一个游戏(它是一种非常未知的语言:modula 2),我们遇到的问题如下:我们有一个 17 x 12 网格中的迷宫(不是完美的迷宫)。计算机必须生成从起点 (9, 12) 到终点 (9, 1) 的路径。我找到了一些算法,但是当机器人必须返回时它们不起作用:
或者:
我找到了第一种示例类型的解决方案,但无法解决第二种类型,我为第二种类型编写的解决方案会导致机器人陷入第一种情况。
这是很多代码,所以我会给出这个想法:
WHILE(未到达终点) DO { 尝试向右走,如果没有任何阻碍:如果遇到障碍,请向右走,直到可以向右走,如果您不能再向上走,请尝试向下走,直到可以向右走, (从你第一次被阻挡的地方开始),如果你不能再下去了,试着往左走一步,用方块填充你测试的空间。}
这适用于第一种类型的问题......不适用于第二种问题。现在可能是我开始错了,所以我愿意接受更好的算法或解决方案,特别是如何改进我的算法。
非常感谢!!
c# - 在 WinForms.NET 中渲染随机生成的迷宫
我正在尝试创建一个迷宫生成器,为此我在 C# 中实现了随机化 Prim 算法。
但是,生成的结果是无效的。我不知道这是我的渲染,还是无效的实现。因此,对于初学者来说,我想让某人看一下实现:
迷宫是细胞的矩阵。
这是渲染结果的示例:
渲染迷宫 http://dl.dropbox.com/u/1744224/Upload/primrecur.png
编辑好的,让我们看看渲染部分:
我想,要理解这一点,我们需要查看 MazeCell 和 MazeWall 类:
java - 使用 Roomba 在玩家关卡中进行迷宫导航
这是我的代码:
我试图让 Roomba 以轻微的右曲线连续运行,如果它用激光识别它,它会迅速转离它靠近的每一面墙。我只能对这个机器人使用laser_data[360] 和laser_data[0]。我认为这最终会在迷宫中导航。
但是,我使用的是 Player Stage 平台,当 Roomba 使用此代码靠近墙壁时,Stage 冻结,我不知道为什么。
另外,如果您能想到更好的迷宫导航算法,请告诉我。
谢谢!
java - 使用 Java 创建迷宫
我使用 Java 创建一个由指定的“行”和“列”组成的迷宫,看起来像一个网格。我计划使用深度优先递归方法在房间(由行和列创建的框)之间“打开门”。
我需要帮助编写一个 openDoor 方法来断开房间之间的链接。
algorithm - 编程理论:解决迷宫
有哪些可能的方法来解决迷宫?
我有两个想法,但我认为它们不是很优雅。
基本情况:我们有一个矩阵,这个矩阵中的元素按照它代表一个迷宫的方式排序,一个进一个出。
我的第一个想法是让机器人沿着迷宫的一侧穿过迷宫,直到它走出迷宫。我认为这是一个非常缓慢的解决方案。
第二个通过标记为 1 的每个连续项目,检查它可以去的地方(上、右、下、左)选择一种方式,并在那里继续它的路径。这甚至比第一个慢。
当然,如果我让两个机器人在每个连接处都进行多线程处理会快一点,但这也不是最好的方法。
需要有更好的解决方案来让机器人通过迷宫。
编辑
第一:谢谢你的好答案!
我的问题的第二部分是:如果我们有一个多维图,该怎么办?是否有特殊的做法,或者贾斯汀 L. 的答案是否也适用于此?
我认为这不是这个案子的最佳方式。
第三个问题:
这些迷宫求解算法中哪个/是最快的?(纯属假设)