我正在制作一个程序,使一个随机大小的网格> 1,然后随机地将墙壁放入迷宫内。然后该程序应该找到从起点到目标的路线。我正在使用广泛的搜索。
我的问题是我找不到存储坐标的方法,所以我创建了自己的类Coord
,它具有x和y值。对于我的部分算法,我需要制作一个Coord
我似乎无法让它工作,每次我尝试运行该程序时,我得到ArrayIndexOutOfBoundsException
。我不知道为什么或如何分配这个数组,我的算法需要它。
以下是我尝试运行的代码:
Coord[][] test2dArray = new Coord[3][3];
test2dArray = Coord.make2dArray(3, 3);
这是在呼唤:
public class Coord {
int x;
int y;
public static Coord[][] make2dArray(int sizex, int sizey){
Coord[][] array= new Coord[sizex][sizey];
for(int x=0; x<sizex; x++){
for(int y=0; x<sizey; y++){
array[x][y] = new Coord(0,0);
}
}
return array;
}
到目前为止,我确实有一个使用此代码的1d数组:
Coord[] testArray = Coord.makeArray(4);
致电:
public static Coord[] makeArray(int size){
Coord[] array= new Coord[size];
for(int i=0;i<size;i++){
array[i]= new Coord(0,0);
}
return array;
}
如果你能帮助我并解释发生的事情会很棒!非常感谢你的帮助:)
答案 0 :(得分:0)
该行
for(int y=0; x<sizey; y++)
应该是
for(int y=0; y<sizey; y++)
需要使用条件y<sizey
来阻止y
过大并导致ArrayIndexOutOfBoundsException
。您的拼写错误意味着y
未停止。