问题描述
我有这个任务,我必须在进入目的地点时让机器人找到最短的路径。我创建了一些函数来为每个正方形分配数字(距离),并通过删除其他选项将其计数回到我的机器人。然后,机器人只能遵循数字。
到目前为止,我的代码可以运行,但是我认为通过减少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 (将#修改为@)