【发布时间】:2015-12-13 19:28:11
【问题描述】:
我刚写完一个数独求解器。它有两个类,一个控制台求解器和一个 gui 求解器。 控制台求解器有一个名为solve的方法,它递归地求解数独。 gui 扩展了控制台求解器,也使用了它的求解方法。在进行另一个递归调用之前,通过打印出方法内部的数独字段,很容易跟踪每个递归步骤,如下所示:
System.out.println(field);
// solve next cell
if (j < 8) solve(field, row, column + 1);
else solve(field, row + 1, 0;
}
但是如何在 gui 中显示字段中的更改? 我使用 JTable 在 gui 中显示数独字段。 目前我只显示结果,而不是导致它的步骤,这似乎有点无聊。
这里有一些更相关的代码:
/* solve button action listener/handler */
solveButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
/* solve the sudoku and display it
* in solve table.
*/
fieldToTable(field, solveTable); //put sudoku field in display
try {
solve(field, 0, 0); // Solve starting at [0,0]
} catch (SolvedException d) {
/* SOLVED */
}
} //End of action handler
}); // End of action listener
/* Done with solve button action listener */
【问题讨论】:
-
你能发布更多相关的代码吗?
-
我的第一个想法是让GUI实现一些可以更新您必要信息的接口,然后您的递归调用可以传递该接口实例并使用适当的信息调用接口方法(至少单元格位置和价值)
-
Yassin: 刚刚用 sudokuGUI 类 Cricket 中使用的代码编辑了帖子:对不起,但我对此一无所知。我是新手..
标签: java recursion call sudoku