【发布时间】:2011-05-05 15:59:02
【问题描述】:
我正在为类似国际象棋的游戏实施 AI。我打算使用递归来尝试棋盘的所有可能状态并选择“最佳走法”。
由于每次移动的时间限制,每当达到时间限制时,我需要有一些机制来打破这些递归过程。当然,我可以在进行递归调用之前继续检查时间,如果当前时间接近限制,我可以中断,但这是与我的程序性能的权衡。
如果有一种方法可以在计时器结束时打破这些递归过程,那就太好了。但是,由于我是 Java 新手,我不知道在 Java 中是否有任何方法可以做到这一点?你能给出一个示例代码吗? :)
【问题讨论】:
-
为什么不将时间作为参数传递给递归调用呢?然后进行基本情况检查,如果时间不多了,然后返回最佳解决方案。
-
在我看来,检查变量(时间)的值对整体性能的影响可以忽略不计。
标签: java recursion timer break chess