Я работаю над созданием программы, которая делает сетку случайного размера> 1, а затем случайным образом ставит стены внутри лабиринта. Затем программа должна найти маршрут от начальной точки до цели. Я использую поиск по ширине.
моя проблема в том, что я не мог найти способ хранения координат, поэтому я создал свой собственный класс Coord
который имеет значение x и y. для части моего алгоритма мне нужно создать 2d-массив типа 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;
}
Если бы вы могли помочь мне и объяснить, что происходит, это будет здорово! Большое спасибо за вашу помощь :)
Линия
for(int y=0; x<sizey; y++)
должно быть
for(int y=0; y<sizey; y++)
Условие y<sizey
необходимо, чтобы остановить y
слишком большим и вызывать ArrayIndexOutOfBoundsException
. Ваша опечатка означает, что y
не остановлен.
ArrayIndexOutOfBoundsException
мой плохой для перечисления неправильного исключения
Coord[][] test2dArray = new Coord[3][3]; test2dArray = Coord.make2dArray(3, 3);
ArrayIndexOutOfBoundsException
а неNullPointerException
?