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

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

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

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

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

 

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

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

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

 

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

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

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

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

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

 

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

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

 

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值