具有严格时间限制的Java minimax

时间:2014-11-26 22:23:14

标签: java recursion time timeout limit

我正在实施一个alpha beta搜索,迭代加深学校项目的棋盘游戏。我唯一的问题是严格的时间限制 - 如果解决方案没有按时完成,则该解决方案无效。我找到了解决这个问题的多种解决方案,但它们似乎都不适用于我。现在我拥有的是:

public int act(int board[][], int[] moves, int timeLimit) {
        long startTime = System.currentTimeMillis();
        ActThread actThread = new ActThread(board, moves);
        Thread worker = new Thread(actThread);
        worker.start();
        try {
            Thread.sleep((long) (0.9 * timeLimit));
        } catch (InterruptedException e) {
            System.err.println(e);

        }
        actThread.terminate();
        return actThread.getBestMove();
    }

正如你所看到的,我在不同的线程中计算结果,在哪里使用迭代加深来计算。这是我最简单的解决方案,但我尝试过使用ExecutorService,特别是awaitTermination函数,我试图安排TimerTask来终止ActThread。

0 个答案:

没有答案