我必须创建一个程序,将 9 行数独显示为 9 个 9 位数字,然后提示用户在数独上执行 6 个操作之一。然后我们必须在用户每次执行操作时输出数独。这是应该如何进行的示例运行:
Welcome to Sudoku Permuter.
C C C C C C C C C
1 2 3 4 5 6 7 8 9
R1 0 8 0 4 0 2 0 6 0
R2 0 3 4 0 0 0 9 1 0
R3 9 6 0 0 0 0 0 8 4
R4 0 0 0 2 1 6 0 0 0
R5 2 0 0 0 0 9 6 0 0
R6 0 1 0 3 5 7 0 0 8
R7 8 4 0 0 0 0 0 7 5
R8 0 2 6 0 0 0 1 3 0
R9 0 9 0 7 0 1 0 4 0
(0 denotes a blank)
Enter 1 to swap two rows in a panel
Enter 2 to swap two columns in a panel
Enter 3 to swap two row panels
Enter 4 to swap two column panels
Enter 5 to swap two numbers
Enter 0 to end:
假设用户输入 3(交换两个行面板)。这会出现:
Enter row panels (1-3) to swap: 3 1
它将交换行面板 1 和 3,这将是输出:
C C C C C C C C C
1 2 3 4 5 6 7 8 9
R1 8 4 0 0 0 0 0 7 5
R2 0 2 6 0 0 0 1 3 0
R3 0 9 0 7 0 1 0 4 0
R4 0 0 0 2 1 6 0 0 0
R5 2 0 0 0 0 9 6 0 0
R6 0 1 0 3 5 7 0 0 8
R7 0 8 0 4 0 2 0 6 0
R8 0 3 4 0 0 0 9 1 0
R9 9 6 0 0 0 0 0 8 4
Rows 1-3 have been switched with rows 7-9.
假设用户输入 5。这出现了:
Enter two numbers: 2 8
原来的数独再次输出,除了 2's 和 8's 在整个过程中切换。
C C C C C C C C C
1 2 3 4 5 6 7 8 9
R1 0 2 0 4 0 8 0 6 0
R2 0 3 4 0 0 0 9 1 0
R3 9 6 0 0 0 0 0 2 4
R4 0 0 0 8 1 6 0 0 0
R5 8 0 0 0 0 9 6 0 0
R6 0 1 0 3 5 7 0 0 2
R7 2 4 0 0 0 0 0 7 5
R8 0 8 6 0 0 0 1 3 0
R9 0 9 0 7 0 1 0 4 0
如果用户输入 1,就会出现一些提示
Enter two rows (1-9) to switch:
并且无论用户输入哪一行,这两个单独的行将被交换并且数独将再次被输出。如果用户输入 2,则类似,但会切换 2 列。类似地,如果用户输入 4,则会切换两个列面板。
我们应该使用这样的二维数组:
int [] [] sudoku = new int[10] [10]
我不知道该怎么做。我整个学期都在苦苦挣扎,这是我的第一堂编程课。我只是根本不懂数组,我也不明白我们一开始应该如何显示数独。这个问题不在我们的书中,所以我也没有什么可回顾的。我真的需要通过这门课。如果有人可以帮助我,我真的很感激。尽量让它易于理解,有很多东西我还没有学会如何去做(例如:为了记录,idk parseInt 是什么)。我试过读这本书(好几次)。它可以帮助一些人,但是这个程序是不可能的。十分感谢你的帮助。