我是java编程的新手,并创建了一个基于控制台的数独游戏作为练习。回溯算法生成完整的数独游戏,另一种方法是“挖洞”到随机单元格(关于难度)。现在,为空白单元格设置了值0,但我不喜欢Sudoku看起来的方式..董事会中的数字太多,我认为空白将是一个不错的选择。然后,玩家应该能够用他自己的猜测替换单元格中的(现在为'0',后来的空格)。 有没有办法在0时替换int值?算法和digHole方法都在2D数组(坐标)上使用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 :(得分:-1)
为什么不把它设置为:
" "
这应该可以解决问题,也可以发布你的代码示例?
答案 1 :(得分:-1)
我建议保持现在的逻辑表示(使用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()
}