微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过找到最短的方法来导航机器人

如何解决通过找到最短的方法来导航机器人

我有这个任务,我必须在进入目的地点时让机器人找到最短的路径。我创建了一些函数来为每个正方形分配数字(距离),并通过删除其他选项将其计数回到我的机器人。然后,机器人只能遵循数字。

Here's also a screenshot of the map it navigates in:

到目前为止,我的代码可以运行,但是我认为通过减少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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。