Java QQWing在我的Android应用程序中生成一个只有零的数独游戏

Java QQWing在我的Android应用程序中生成一个只有零的数独游戏,java,android,sudoku,qqwing,Java,Android,Sudoku,Qqwing,我是一名初学者程序员,我正在尝试使用我在这里找到的现有代码创建我自己的数独生成器,我将它放在包中的单独文件中 我不知道该怎么做。我试图用正确的数独数字填充我的棋盘,但它只填充零。这是我的密码: QQWing wing = new QQWing(); try { wing.generatePuzzle(); } catch (Exception e) { // TODO Auto-generated catch bl

我是一名初学者程序员,我正在尝试使用我在这里找到的现有代码创建我自己的数独生成器,我将它放在包中的单独文件中

我不知道该怎么做。我试图用正确的数独数字填充我的棋盘,但它只填充零。这是我的密码:

QQWing wing = new QQWing();

        try {
            wing.generatePuzzle();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }



      // Create the layout
      TableLayout table = new TableLayout(this);


      TableLayout.LayoutParams lp = new TableLayout.LayoutParams(
              ViewGroup.LayoutParams.FILL_PARENT,
              ViewGroup.LayoutParams.FILL_PARENT);

              table.setLayoutParams(lp); // This line has no effect! WHYYYY?!
              table.setStretchAllColumns(true);
              EditText editText[][] = new EditText[9][9];
              for (int i = 0; i < 9; ++i)
              {
              TableRow row = new TableRow(this);
              for (int j = 0; j < 9; ++j)
              {
                  editText[i][j] = new EditText(this);

                    editText[i][j].setText(String.valueOf(wing.puzzle[i*9+j]));
                    editText[i][j].setWidth(50);
                    row.addView(editText[i][j]);
              }
              table.addView(row);
              }
QQWing wing=新的QQWing();
试一试{
wing.generatePuzzle();
}捕获(例外e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
//创建布局
TableLayout table=新的TableLayout(本);
TableLayout.LayoutParams lp=新建TableLayout.LayoutParams(
ViewGroup.LayoutParams.FILL\u父级,
ViewGroup.LayoutParams.FILL\u父级);
表.setLayoutParams(lp);//这句话没有效果!为什么?!
表.SetStretCharl列(真);
EditText EditText[][]=新的EditText[9][9];
对于(int i=0;i<9;++i)
{
TableRow row=新的TableRow(本);
对于(int j=0;j<9;++j)
{
editText[i][j]=新的editText(本);
editText[i][j].setText(String.valueOf(wing.puzzle[i*9+j]);
editText[i][j].setWidth(50);
row.addView(editText[i][j]);
}
表.addView(行);
}

这是因为您捕获了所有异常,应该避免这种情况。generatePuzzle()抛出NPE,因为随机r为null,因为源代码写得不好,不能仅通过实例化QQWing来使用

像这样使用它来启动:

QQWing.r = new Random();
QQWing wing = new QQWing();

这是因为您捕获了所有异常,应该避免这种情况。generatePuzzle()抛出NPE,因为随机r为null,因为源代码写得不好,不能仅通过实例化QQWing来使用

像这样使用它来启动:

QQWing.r = new Random();
QQWing wing = new QQWing();

这是斯蒂芬·奥斯特米勒,QQWing的作者

我很高兴地报告,这个问题已经在QQWing版本1.3.3中修复。Java API有了很大的改进:

  • 不再抛出异常
  • 随机数生成器将自动初始化
  • 它已放置在
    com.qqwing
    包中
下面是使用QWing的
Test.java

import com.qqwing.*;

public class Test {
    public static void main(String[] args){
        QQWing qq = new QQWing();
        qq.generatePuzzle();
        System.out.println(qq.getPuzzleString());
    }
}
它可以按如下方式编译和运行:

$ javac -classpath qqwing-1.3.3.jar Test.java && java -classpath .:qqwing-1.3.3.jar Test
 . . 5 | 8 . . | 3 4 .
 . . 6 | . 7 . | . 2 1
 3 . 8 | 2 . . | . . .
-------|-------|-------
 . . . | 4 6 5 | . 1 .
 . . . | . . . | . . .
 . 7 . | 1 3 . | 6 8 .
-------|-------|-------
 . . . | . . . | 1 3 .
 . . 4 | . . . | 2 . .
 . . . | . . . | . 5 6

来自。

这位是斯蒂芬·奥斯特米勒,QQWing的作者

我很高兴地报告,这个问题已经在QQWing版本1.3.3中修复。Java API有了很大的改进:

  • 不再抛出异常
  • 随机数生成器将自动初始化
  • 它已放置在
    com.qqwing
    包中
下面是使用QWing的
Test.java

import com.qqwing.*;

public class Test {
    public static void main(String[] args){
        QQWing qq = new QQWing();
        qq.generatePuzzle();
        System.out.println(qq.getPuzzleString());
    }
}
它可以按如下方式编译和运行:

$ javac -classpath qqwing-1.3.3.jar Test.java && java -classpath .:qqwing-1.3.3.jar Test
 . . 5 | 8 . . | 3 4 .
 . . 6 | . 7 . | . 2 1
 3 . 8 | 2 . . | . . .
-------|-------|-------
 . . . | 4 6 5 | . 1 .
 . . . | . . . | . . .
 . 7 . | 1 3 . | 6 8 .
-------|-------|-------
 . . . | . . . | 1 3 .
 . . 4 | . . . | 2 . .
 . . . | . . . | . 5 6