不确定Dijkstra算法

2024-04-26 06:27:24 发布

您现在位置:Python中文网/ 问答频道 /正文

在这个网站上这么多人的帮助下,我得到了一些精彩的代码。不幸的是,Dijkstra算法不起作用。它应该找到AI和玩家之间的最短距离,并将AI移近玩家。我不知道如何让它返回一条路径,如何让人工智能离玩家更近一步,甚至它是否按照我的意图工作。你知道吗

def search(x, y):
    if maze[x][y] == visblock():
        return False
    elif maze[x][y] == 3:
        return False
    elif maze[x][y] == player():
        print("Found Player")
        return True

    maze[x][y] = 3

    if ((x < 5 - 1 and search(x+1, y))
        or (y > 0 and search(x, y+1))
        or (x > 0 and search(x-1, y))
        or (y < 5-1 and search(x, y-1))):
            return True

    return False

Tags: orand代码falsetruesearchreturnif
1条回答
网友
1楼 · 发布于 2024-04-26 06:27:24

Dijkstra的最短A到B路径算法是有效的,即使你的代码没有。Wikipedia page有您应该能够翻译的代码。你知道吗

由于您可以计算从每个点到目标的相当精确的最小距离,因此使用Dijkstra上的A* improvement可能会做得更好。你知道吗

相关问题 更多 >