【发布时间】:2025-04-14 10:45:01
【问题描述】:
看了this的博文,决定用它在Java中创建一个迷宫,用A*算法来解决。迷宫一代运作良好。我已经稍微修改了代码以适用于 Java 和我的目的。
不幸的是,我开始的时候并没有考虑它,但是示例将其打印为 ASCII。我希望它是一个带有 1 和 0 的二维数组,用于路径查找。
目前,它打印字符,例如,如果宽度和高度 = 10,它看起来像这样:
___________________
| | _ |_ |_ |
| | | _| _| | |
|___| |_ | | | | |
| ___| _| |___| |
|_ |_ | _| ___|
| |_____| ___| |
| _| | ___| |
| | |_| _| | | _|
|_|_________|_____|
我也让它把迷宫画到一个 GUI 上。这个看起来像这样(逆时针旋转 90 度,使 (1, 1) 在左下角):
我目前将 ASCII 迷宫添加到二维字符串数组中。数组中字符串的可能值是:
" ",
"_",
" ",
" _",
" |",
"_ ",
"__",
"_|",
有没有办法循环遍历包含迷宫的数组,并根据 ASCII 迷宫中的下一个字符分配 1 或 0?如果是这样,您将如何解释水平线上方的额外空间,这些空间不会被识别为开放空间?
【问题讨论】:
-
@ErwinBolwidt 您是否阅读了最后一段,或者其中的任何一段?我不确定我的问题是否需要发布代码。 I️ 可以发布 I️ 目前如何拥有它,但这似乎并不会增加“我如何才能说明将添加为 1 的水平线上方的空间,但需要拥有一个以及它上面的空间。”
-
所以你有想要更改的当前代码,并且你问“是否有一种方法可以循环遍历包含迷宫的数组,并根据接下来的内容分配 1 或 0字符在 ASCII 迷宫中吗?”。如果不查看该代码,很难弄清楚您当前拥有什么,您的问题是基于什么的。
标签: java arrays recursion maze