上一篇文章只发布了很粗糙的代码,属于能跑就行,确实难看懂。
这一篇继续说一下爬墙思维,,B*寻路算法就是贪婪思维 +攀爬思维,
但是比较难判定怎么算爬过的障碍,所以这里改为 贪婪思维 +穿透障碍,(空心障碍的话这不坑爹吗)
最开始研究B*寻路算法时,真是时 不知道怎么取解决爬墙,,,
从格子3 开始分路,开始考虑撞墙,换方向,又得判定是否已经翻过了障碍,起初我觉得可以用距离来判断翻过了障碍,因为对于B*算法来说,情况是这样的。
这里距离=该点到起点的距离+到终点的距离,这里有点像椭圆离的两个固定坐标,就是起点和终点,直接连线那么距离最短,遇到障碍后距离局部变大,爬过障碍后又变小。但是对于上图的包围型障碍来说,通过距离的起伏判定是失效的