私のコードでは少し問題があります。同じ整数の行と列をチェックすることが考えられます。数独チェッカー2d配列Java
これは私がこれまで行ってきたことですが、私が実行すると、最初の整数だけをチェックするようです。 1 2 2 2 2 2 2 2 2 2 2)それは明白な倍数2を検出しませんが、もし私が入力を1に変えれば、エラーは起こりますこの場合複数の1のうちの1つを選択する。列を通過するように私のループを微調整するための提案は複数ある?
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]/[2]/[3] [3]を横切ってボードを降りるときに問題を抱えました。 –
私は分かりません。なぜあなたは '[0] [0]'、 '[1] [1]'などをスキップしたいのですか? –