我正在建立一个A星算法,我想存储8个可能的方向,如此移动到字典中:[“NW:一个位于西北的位置,我从一个存储所有单位的2D列表中调用在我的地图上]
对于西北部的例子,我会这样称呼该单位:
["NW": map[p.x -1][p.y-1]]
存储左上角(或NW)单位(p是起始位置单位,我称之为x和y坐标。地图是我用来说明我的2D列表,其中包含我的所有单位格)。 我必须为起跑单位周围的所有8个方向做类似的事情。 问题是起始单位可能在任何一点都在地图的边缘,所以如果我在起始节点位于我的地图的左边界时尝试去NW,W或SW,那么很明显会出现索引某种边界错误。
如何一次有效地测试所有8个案例?我不想将它们全部添加到我的字典中,并用自己的try语句将它们包围起来。本质上我想将这段代码添加到我的程序中:
dic = ["NW": map[p.x -1][p.y-1], "N": map[p.x][p.y-1], "NE" map[p.x
+1][p.y-1], ...]
依此类推,适用于所有8个方向。