0

我是一名学生,我以前从未尝试过像这样明确声明一个数组。

我想将多个数独网格放入最终产品的类中,否则我将在一个语句中声明和初始化数组。

我希望“已解决”指的是不同的网格,具体取决于选择的是简单、中等还是硬数独网格。那可能吗?

我编写它的方式会导致空指针异常,但我不确定如何将数组声明为类成员,然后在每个构造函数中显式初始化它。

如果您能在语法上理顺我,我将不胜感激。我想我声明该数组的方式一定有问题。

这是我用来测试它的:

public class SudokuDriver {

public static void main(String[] args) {

    SudokuSolution solved = new SudokuSolution();
    
    System.out.println(solved.getSolved(0, 1));
    System.out.println(solved.toString());
 }}

这是我正在测试的课程:

公共类数独解决方案{

private int [][] solved;

public SudokuSolution () {
    
    int [][] solved = { 
                {6, 9, 7, 8, 3, 1, 4, 2, 5},
                {2, 8, 4, 9, 7, 5, 1, 6, 3},
                {5, 3, 1, 2, 6, 4, 9, 7, 8},
                {3, 4, 9, 1, 5, 6, 2, 8, 7},
                {7, 5, 8, 4, 9, 2, 3, 1, 6},
                {1, 6, 2, 7, 8, 3, 5, 9, 4},
                {4, 2, 6, 3, 1, 7, 8, 5, 9},
                {8, 1, 5, 6, 4, 9, 7, 3, 2},
                {9, 7, 3, 5, 2, 8, 6, 4, 1}
            };
    }

    public int getSolved(int a, int b)  {
        
        return solved[a][b];            
    }
    
    public String toString()  {
        
        StringBuilder grid= new StringBuilder();
        int i, j;
        
        for (i=0 ; i < solved.length; i++) {
            for (j = 0; j < solved.length; j++)  {
                grid.append(solved [i][j] + ((i==solved.length - 1) ? "\n" : " "));
            }
        }
        
        return grid.toString();
    }

}

4

0 回答 0