小地图寻径——起点扩散遍历

尝试过一些比较高端的寻径方法.虽然那些方法巧妙独特.但是在用于处理某些小型矩阵寻路的问题中似乎有些大材小用.

下面说一种我的寻径算法.在解决小地图寻径时.简单粗暴.代码精简.

我把它取名为:起点扩散遍历

可能大家会说,哟.不还是遍历么.      没错.不过 这种遍历方式更为粗暴.能用很短的代码解决寻路问题。

 

下面说说我发现这种遍历方式的起因:

*我需要解决军棋游戏中 工兵寻径的方法.(只要路径上没有阻碍.工兵可以在铁路上前行任意距离.包括拐弯)

小地图寻径——起点扩散遍历_第1张图片

铁路即图中黑白间隔线的路径.

 

判断从一个点,能否到达另一个点。(起点终点都在铁路上)

那么问题来了,我是否要寻路一步记录一步呢。当然不用,不然怎么能叫简单粗暴呢。

我的方法是:在起点标记一个记号(例如矩阵中赋值 起点=2)

然后开始遍历数组N次(遍历顺序随意),每次遍历中,发现某个元素==2;

那么把他周围的*铁路*且*没有棋子*的格子赋值为2;

 

当遍历地图N次后,(当每个为2的元素周围.都没有*铁路*且*没有棋子*的格子时遍历结束)

我只需要判断终点周围有没有2的元素就可以了。

 

这样做的好处显而易见,判断极少,不用关心岔路,不用关心变量控制。

实现小地图遍历寻径.就这么简单粗暴!

你可能感兴趣的:(小地图寻径——起点扩散遍历)