Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 数独:将int值显示为空格_Java_Int_Whitespace_Sudoku - Fatal编程技术网

Java 数独:将int值显示为空格

Java 数独:将int值显示为空格,java,int,whitespace,sudoku,Java,Int,Whitespace,Sudoku,我是java编程的新手,创建了一个基于控制台的数独游戏作为练习。一种回溯算法生成一个完整的数独,另一种方法根据难度在随机单元中“挖洞”。现在,空白单元格的值为0,但我不喜欢数独游戏的外观。它在黑板上的数字太多了,我认为空白是一个很好的选择。然后,玩家应该仍然能够用自己的猜测替换现在的“0”,稍后单元格中的空白。 有没有办法在int值为0时替换它?该算法和digHole方法都在二维阵列坐标上使用了setValue方法 谢谢你的帮助 这是我的黑板图: public static void drawB

我是java编程的新手,创建了一个基于控制台的数独游戏作为练习。一种回溯算法生成一个完整的数独,另一种方法根据难度在随机单元中“挖洞”。现在,空白单元格的值为0,但我不喜欢数独游戏的外观。它在黑板上的数字太多了,我认为空白是一个很好的选择。然后,玩家应该仍然能够用自己的猜测替换现在的“0”,稍后单元格中的空白。 有没有办法在int值为0时替换它?该算法和digHole方法都在二维阵列坐标上使用了setValue方法

谢谢你的帮助

这是我的黑板图:

public static void drawBoard() {
    String[] abc = { "A", "B", "C", "D", "E", "F", "G", "H", "I" };
    // i := rows
    for (int i = 0; i <= 8; i++) {
        // first row
        if (i == 0) {
            System.out.println("");
            // coordinates 1-9
            System.out.println("       1   2   3   4   5   6   7   8   9\n" + "     _____________________________________ \n"
                            + "    |                                     |");
        }
        // j := columns in row i
        for (int j = 0; j <= 8; j++) {
            if (j == 0) {
                // coordinates A-I and first column
                System.out.print(" " + abc[i] + "  |  " + sudokuCells[i][j].getValue() + "  ");
            } else if (j == 8) {
                // last cell in current row
                System.out.print(" " + sudokuCells[i][j].getValue() + "  |");
                System.out.println("");
            } else if (j == 2 || j == 5) {
                //frame
                System.out.print(" " + sudokuCells[i][j].getValue() + " |");
            } else {
                //whitespace as seperation
                System.out.print(" " + sudokuCells[i][j].getValue() + "  ");
            }
        }
        // last row with frame
        if (i == 8) {
            System.out.println("    |_____________________________________|");
            System.out.println();
        }

为什么不将其设置为:

" "

这应该可以解决问题,也许还可以发布一个代码示例?

我建议保持逻辑表示形式与现在的0相同,并且在遇到0时只打印一个空格,因此您只需修改打印电路板的函数

比如像这样

for(int i = 0; i < board.length; i++)
{
   for(int j = 0 j < board.length; j++)
   {
      Cells curr = board[i][j];
      if(curr.getValue() == 0)
         System.out.print(" ");
      else
         System.out.print(curr.getValue())
   }
   System.out.println()
}

你有没有代码让我们知道你是如何实现它的?在显示例程中一个简单的if就足够了。ifdata[x][y]==0{display}使用您用于显示的任何方法替换display,并使用数据源替换数据。我们不关心您的生成代码,只需更改将数独打印到控制台的方法即可。