一种重要的网格遍历(寻路)算法

发表于2018-01-17
评论2 2.3k浏览

算法如下:

for (vardx = -1; dx <= 1; dx++)

            for (vardy = -1; dy <= 1; dy++)

                if (!dx ^ !dy) {//{(-1,0),(0,-1),(0,1),(1,0))}

                   varsite= that.chesses[row+dy][col+dx];

                var sitethat.chesses[row+dx][col+dy];

                var sitethat.chesses[row+dy*row+dx];

                var sitethat.chesses[row+dx*row+dy];

                }

这种算法是遍历一个方格的四个方向,如图所示:


算法会遍历红色小方块四周的黑色小方块。这样,小方块不断遍历,就会遍历红色附近所有连续的黑色小方块,就不必去遍历所有小方块。

这个应该是一个基础知识,但是没有看过这个算法就很难想到,所以记录下来。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

标签:

2个评论

  • *ST52 2018-02-06 1楼
    学习一下
  • 251275671 2018-02-06 2楼
    楼主666