好吧,正如标题所示,我正在编写一款名为Morabaraba的游戏。它将是一个计算机与人类游戏。我将使用游戏树和alpha-beta截止点来生成计算机游戏,并且每个计算机游戏都应该在特定的时间内进行(比方说15秒)。
计算自转弯开始后经过的秒数的最佳方法是什么,并验证它是否仍未超过时间限制而不会使系统超载?众所周知,生成游戏树时,时间是宝贵的。超过时限将导致没收。
我想知道如何使用轻量级算法完成此操作。如何验证每x秒未达到时间限制?这个验证的时间可以忽略不计吗?
提前致谢。
答案 0 :(得分:1)
是的,这次验证的时间几乎可以忽略不计,因为您将轮流以离散间隔传递的时间量,并将其与开始时间进行比较,以了解到目前为止已经过了多长时间。
我在这里看到两个解决方案:
第二种方法可能听起来很可怕,但在某些情况下检查算法本身的经过时间是不切实际的,因为代码不能轻易地从被调用者中调整和中断(例如,如果你有一个非模块化的算法许多不同的步骤,虽然不是你的情况)
答案 1 :(得分:0)
首先检查每个“步骤”或每N个步骤之后的时间,以某种方式确定您每秒至少检查一次。如果计算的性质使得这种做法不切实际,那么当给定的时间过去时,您可以使用类似POSIX计时器的信号来表示您的过程。