Итак, у меня есть проблема с моим кодом. Предполагается, что нужно перекрестно проверять строки и столбцы для одних и тех же целых чисел.Sudoku Checker 2d array Java
это то, что у меня есть до сих пор .. но когда я запустил его, мне кажется, что проверяет только первое целое число. (например, первая строка платы судоку читает. 1 2 2 2 2 2 2 2 2 2) она не обнаружит очевидного множественного 2, но если я изменю вход на 1 1 2 2 2 2 2 2 2, ошибка придет в этом случае может быть несколько единиц. несколько советов по настройке моих петель, чтобы они проходили через столбцы?
public static void validate(final int[][] sudokuBoard) {
int width = sudokuBoard[0].length;
int depth = sudokuBoard.length;
for (int i = 0; i < width; i++) {
int j = i;
int reference = sudokuBoard[i][j];
while (true) {
if ((j >= width) || (j >= depth)) {
break;
}
else if (i == j){
// do nothing
}
else if (j < width) {
int current = sudokuBoard[i][j];
if (current == reference) {
System.out.print("Invalid entry found (width)" + "\n");
System.out.print(current + "\n");
// invalid entry found do something
}
} else if (j < depth) {
// note reversed indexes
int current = sudokuBoard[j][i];
if (current == reference) {
System.out.print("Invalid entry found (depth)" + "\n");
System.out.print(current + "\n");
// invalid entry found do something
}
}
j++;
}
Что такое 'i' и' j'? Почему ничего не делать, когда '(i == j)'? –
У меня была проблема, когда он пересекал sudokuBoard [1] [1]/[2] [2]/[3] [3] и т. Д. Вниз по доске. –
Не понимаю. Почему вы хотите пропустить '[0] [0]', '[1] [1]' и так далее? –