如何在递归的网格中找到最佳的路径

时间:2019-03-22 21:36:21

标签: java recursion

picture of map. 我正在编写一个代码,该代码使自己的网格充满点和1,其中1代表可获取的位置,而点代表可移动的位置。程序每次移动一个点,边界就会立即关闭。该程序应该找出提供最大战利品的最佳途径。我知道我必须为此使用递归,因为那是该项目的主题,但是我不确定如何完全实现它。

这是针对Java的,我试图这样做以找出每条路径,但是我不知道如何找到最佳路径。

epRuntime.setVariableValue("expireSecs", 5);

我在外部调用了此函数,但它总是只返回数字1而不是最佳路径。这是正在使用的地图 1。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 1。 。 。 。 。 。 1。 。 。 。 。 。 。 。 1P。 1 1 1。 。 。 。 。 1 1 。 。 。 。 。 。 。 。 。 1。 。 1。 。 。 。 。 。 。 。 。 。 。 。 。 。 1个 。 1 1 1。 。 。 。 。 。 。 。 。 1。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 1 1 1 p是原始位置

1 个答案:

答案 0 :(得分:1)

我想到的一个可能的解决方案与MiniMax算法有关。在通常适合两个基于玩家的零和游戏的算法中,您将创建一棵游戏树并评估可能的位置,直到最大深度。当然,这可以进行调整,我们这里只有一名玩家,因此可以为每个外向移动(如果需要,向左,向右,向上,向下,对角线)创建游戏树,并使用对每个得分都更高的函数进行评估收集点。如果板上没有更多的点,则不会创建更多的出局头寸。最后,选择得分最高的那条路。

如果深度足够好,那应该总是尽力而为。

当然,如果电路板变大,可能会有更好的算法。但是,由于董事会的一举一动都在迅速缩小,因此应该能够生成所有职位。