Python 通过寻找最短路径导航机器人

Python 通过寻找最短路径导航机器人,python,for-loop,shortest-path,robotics,Python,For Loop,Shortest Path,Robotics,我有一个任务,当我进入目的地时,我必须让我的机器人找到最短的路径。我已经创建了一些函数来为每个正方形分配数字(距离),并通过删除其他选项来计算返回到我的机器人的路径。那么机器人应该只跟随数字 到目前为止,我的代码仍然有效,但是我认为通过使用更少的for循环和更高效的编写,我应该能够达到相同的结果。我相信,如果我在早期阶段看到不同的思维方式,我可以在未来有更广阔的视野。那么,关于如何用更短的代码实现我的目标,有什么想法吗 #Your Code Starts Here "&quo

我有一个任务,当我进入目的地时,我必须让我的机器人找到最短的路径。我已经创建了一些函数来为每个正方形分配数字(距离),并通过删除其他选项来计算返回到我的机器人的路径。那么机器人应该只跟随数字

到目前为止,我的代码仍然有效,但是我认为通过使用更少的for循环和更高效的编写,我应该能够达到相同的结果。我相信,如果我在早期阶段看到不同的思维方式,我可以在未来有更广阔的视野。那么,关于如何用更短的代码实现我的目标,有什么想法吗

    #Your Code Starts Here
"""
for x in range(0, map.width):
    for y in range(0, map.height): 
        if map.blocked(x, y):
            map.value[x, y] = -1 
        else:
            map.value[x, y] = 0
"""
def fill_around(n,m,number):
    for x in range (n-1,n+2):
        for y in range (m-1,m+2):
            if map.value[x,y] != 0:
                pass
            elif x==n+1 and y==m+1 or x==n-1 and y==m-1 or x==n-1 and y==m+1 or x==n+1 and y==m-1:
                pass
            elif map.blocked(x,y) == True:
                map.value[x,y]= -1            
            elif x==n and y==m:
                map.value[x,y]= number
            else:
                map.value[x,y]= number+1


def till_final(final_x,final_y):
final_x=9 
final_y=1
fill_around(1,1,1)
for p in range(2,17):
    for k in range(0, map.width):
        for l in range(0, map.height):
            if map.value[final_x,final_y] ==0 and map.value[k,l]==p:
                fill_around(k,l,p)

def delete_duplicates(final_x,final_y):
for k in range(0, map.width):
    for l in range(0, map.height):
        if map.value[k,l] == map.value[final_x,final_y] and k != final_x and l != final_y:
            map.value[k,l] = 0

如果你的代码运行正常,并且你正在寻求改进建议,那么你的问题就脱离主题了,但可能非常适合。我投票结束这个问题,因为它超出了本网站的范围。它已经是。如果你的代码运行正常,并且你正在寻求改进建议,那么你的问题已经脱离主题,但可能非常适合。我投票结束这个问题,因为它超出了本网站的范围。已经是了。