我正在制作一个基于二维瓷砖的迷宫游戏,我正在尝试编程一个人工智能玩家,可以找到它的路径通过迷宫。不同于一般的路径发现,我想限制每个玩家(包括AI玩家)的视野在他们周围的2x2。也就是说,AI应该只知道它周围的5x5网格以及迷宫中的确切坐标,比如:
Tile mapRecord[MAP_SIZE][MAP_SIZE];
Direction FindPathAI(int row, int column, Tile surroundings[5][5]) {
int i, j;
int r = row - 3, c = column - 3;
for (i = 0; i &l
所以基本上我想做的是用左手法则创建一个迷宫求解算法,但是我遇到了一个我似乎不能通过的问题。
前两个代码是我正在使用的代码,我遇到的问题是,当我尝试循环if语句时,它只是继续向上绘制一条直线,而不是向左转(在本例中),然后循环回到开头,绘制一条直线,直到再次撞到墙上。请注意,我知道这并不是最终的产品,我只想确保第一个左转弯和循环正常工作。
import se.lth.cs.ptdc.window.SimpleWindow;
import se.lth.cs.ptdc.maze.*;
public class MazeTurtle extends Turtle {
protected int M
所以我正在尝试创建一个迷宫求解器程序来解决X和O的迷宫。我想做的是创建一类点,这样我就可以创建一个二维点数组,它允许打印到输出页面,同时实现堆栈也相对简单。
我想在实际程序中实现的最简单的算法应该是:
1) Move forward
2) Are you at a wall?
2a) If yes, turn left
3) Are you at the finish?
3a) If no, go to 1
3b) If yes, solved
但我在想出一个更深入的算法以及定位我的Points类时遇到了麻烦。我知道对于点,我应该设置X坐标,并为这两个点设置Y坐标和getter。你认为我需要比
我从这里的链接中为python使用了迷宫生成器代码(也可以在下面看到):
我试图增加迷宫走廊的宽度,因为我正在把迷宫转换成一个高度图。然而,走廊太紧了,不适合我在迷宫中的性格。
我试图更改下面代码的一些设置,但是如果不让迷宫的行为怪异,我无法得到想要的结果。
def make_maze(w = 16, h = 8):
vis = [[0] * w + [1] for _ in range(h)] + [[1] * (w + 1)]
ver = [["| "] * w + ['|'] for _ in range(h)] + [[]]
h
我正在试着写一个程序,用递归在3D迷宫中找到最短路径。
我可以编写代码在迷宫中找到一条随机路径,但我想知道如何修改代码以找到最短路径。
请注意,我希望保留递归方法。
有人能给出一个解决方案吗?
这是一个2D迷宫示例:
s
XXXX
XX X
XXX
Xe X
一种是从s到e。X是一个障碍,也是解决问题的途径。
我使用0,1数组实现了一个迷宫。入口和目标被固定在迷宫中。入口始终是迷宫的0,0点。目标总是迷宫的m-1,n-1点。我现在使用广度优先搜索算法,但速度不够好。特别是对于大型迷宫(100*100左右)。有人能在这个算法上帮我吗?
以下是我的解决方案:
queue = []
position = start_node
mark_tried(position)
queue << position
while(!queue.empty?)
p = queue.shift #pop the first element
return true if maze.goal?(p)
l
我需要创建一个1和0的随机迷宫,它不需要解决。我正在编写的程序需要能够在这个迷宫中搜索,并告诉我是否有可能从一开始到最后得到。0可以通过,但是1就像墙一样。目前,我只是尝试创建随机数组,到目前为止我已经编译了,但是它返回的是:[[I@4ea20232。到目前为止我有这样的想法:
import java.util.Random;
public class SearchMaze{
public static void main(String [] args){
int n = 8;
int m = 7;
int[][] ma