У меня возникли проблемы с делением 2D-массива на ящики, как в судоку. У меня есть массив квадратов в моем объекте доски, и я хочу разделить их на квадраты 2x3 или 3x3. Объекты box имеют 1D-массив для отслеживания квадратов.Разделение 2D-массива на ящики
к это номер ящика, в 9х9 судоку, ящики будут пронумерованы от 0 до 8.
int l = 0;
for(int i=k*a; i<k*a+a;i++){
for(int j=k*b;j<k*b+b;j++){
narray[l]=brd.getSquare(i,j);
brd.getSquare(i,j).setBox(this);
l++;
}
Это получает первое право коробки, но гаснет после этого. Я думал об этом часами, и я не могу обернуться вокруг него. У кого-нибудь есть опрятный трюк?
Вы индексируете строку/столбец с k. Вам, по крайней мере, потребуется отдельная переменная для этих двух, нет? – munch1324
Итак, нет способа получить индекс, чтобы начать итерацию, просто используя номер окна? –
Я не играл в судоку, но это 2D-сетка, правильно? поэтому, если у вас есть сетка 9x9, индексы должны быть 0-80 (9 * 9). Я отредактирую свой ответ ниже – munch1324