如何解决通过找到最短的方法来导航机器人
我有这个任务,我必须在进入目的地点时让机器人找到最短的路径。我创建了一些函数来为每个正方形分配数字(距离),并通过删除其他选项将其计数回到我的机器人。然后,机器人只能遵循数字。
到目前为止,我的代码可以运行,但是我认为通过减少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 举报,一经查实,本站将立刻删除。