您好,我正在开发数独检查器,它可以验证已完成的板的解决方案是否正确。我目前对如何在 block 内进行检查感到困惑。现在我有一个 boolean 值如下 我正在检查左上角的 block (Block1)。我不确定要设置什么参数以及如何成功运行两个 for 循环。
问题是我想检查压缩为 3x3 正方形的二维数组的一部分,看看该区域中的整数是否不重复,即仅 1-9 出现一次。我有类似的代码,我在其中编写了此代码来检查行是否具有重复的整数和列。
static boolean isBlock1Valid(int[][] sudokuBoard, int referenceRow, int referenceColumn)
{
for(int i =0; i<2;i++){
for(int j=0; j<2; j++){
if(sudokuBoard[i][j]==sudokuBoard[i][j])
return false;
}
}
return true;
}//end of isBlock1Valid
这是我用作制作 block 检查器的引用的行检查器
static boolean IsValidRow(int[][] sudokuBoard, int referenceRow, int width)
{
//Compare each value in the row to each other
for(int i = 0; i < width; i++)
{
for(int j = i+1; j < width; j++)
{
if(sudokuBoard[referenceRow][i] == sudokuBoard[referenceRow][j])
return false;
}
}
return true;
}
最佳答案
由于这是作业,只是一个提示。模 3 (i % 3
) 和整数除以 3 (i/3
) 可用于将坐标 0 .. 8 分成 3 部分,并在该部分中建立索引。
关于java - 比较 block 中的整数 Sudoku Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9319061/