java - 比较 block 中的整数 Sudoku Java

标签 java sudoku

您好,我正在开发数独检查器,它可以验证已完成的板的解决方案是否正确。我目前对如何在 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/

相关文章:

java - org.springframework.beans.NotWritablePropertyException

kotlin 中的 Java 8 stream.collect(Collectors.toMap()) 模拟

c# - 递归中的 Stackoverflow 异常

c++ - 6x6 数独游戏,找出你所在的部门

java - 数独解算器重复堆栈与尝试和失败技术

java - 调度程序 servlet 未找到过滤器中重写的 url

java - 添加或删除子项时调整 VBox 动画大小

java - 从文本文件中获取数字列表,转换为单个字符串,然后用空格或逗号将该列表拆分为两个数组列表

objective-c - 数独回溯算法失败

c++ - 数独求解矩阵,while语句给出无限循环