Java 未填充ArrayList

Java 未填充ArrayList,java,arraylist,Java,Arraylist,我正在制作一个机器人迷宫,在那里机器人可以找到目标而不会撞到墙上 我的代码编译得很好,但是: 在死角处,机器人似乎试图朝着它所面对的方向前进,随后大量撞到墙壁上 在走廊,阵列列表是空的,我不知道为什么 非常感谢您的帮助:)您的passageExists方法将以整数形式返回存在的段落数。 因此,首先需要检查存在的通道数是否大于1,然后才能从arrayList中获得一些信息 也就是说,你可以这样说: if(passageExists(robot) > 0) passageDirect

我正在制作一个机器人迷宫,在那里机器人可以找到目标而不会撞到墙上

我的代码编译得很好,但是:

  • 在死角处,机器人似乎试图朝着它所面对的方向前进,随后大量撞到墙壁上
  • 走廊
    阵列列表
    是空的,我不知道为什么

非常感谢您的帮助:)

您的passageExists方法将以整数形式返回存在的段落数。 因此,首先需要检查存在的通道数是否大于1,然后才能从arrayList中获得一些信息

也就是说,你可以这样说:

if(passageExists(robot) > 0)
   passageDirections.get(0);

墙壁也是如此。

当你调用
走廊
时,据我所知,你没有调用
passageExits
,这就解释了这一点……另外,在
passageExits
非墙壁出口
方法中,您正在无条件地向列表中添加方向-只有计数器增量是
if
语句的一部分。正文周围需要大括号:
if(condition){statement1;statement2;}
在调用deadend和corridor方法之前,需要调用passageExists和NowalleExists方法来填充这两个ArrayList。@Prateek我该怎么做<代码>返回PassageExit(robot).passageDirections.get(0)?但是它需要一个返回语句?是的,所以你要做的是在你的走廊函数中,你说如果(passageExists(robot)>0)返回passageDirections.get(0)。像这样的。事实上,我建议不要让这两位ArrayList全球化,因为他们不是全球化的。它们采用了相应的方法。例如,
passageDirections
ArrayList
passageExits
方法中。但是,它不是编译:(.我做了以下操作:
if(passageExits(robot)==1)返回passageDirections.get(0);
但是,编译时它说它缺少一个
return
语句:(是的,因此您应该继续使用相同的方法,并从passageExists方法返回arrayList,而不是通道数。在走廊中,添加逻辑以检查存在的通道数是否大于0,返回第一个通道。如果返回arrayList,则我必须更改调用pa数的大部分代码ssageExits