Я написал это в java, что действительно решает проблему, однако мне все еще интересно, есть ли способ сделать это без использования al oop, это похоже на проблему, которая может быть выражена чисто математически. .
private int[] rowInGrid(int puzzleSize, int matrixRow) {
// return the row, column and value correlating to a row in the cover matrix
int row = 0;
int col = 0;
int val = 0;
for (int i = 0; i < matrixRow; i++) {
val++;
if (val == puzzleSize) {
col++;
val = 0;
}
if (col == puzzleSize) {
row++;
col = 0;
}
}
return new int[]{row,col,val};
}
Функция принимает размер головоломки (ширина / высота / количество значений) и номер строки в матрице обложки (например, 0 относится к первому возможному значению в первой строке и первом столбце доска) и возвращает позицию на доске и значение. Все функции этой функции имеют индекс 0.