A星算法入门之入ing...
A星算法入门之入ing...
壶漏子 发表于3年前
A星算法入门之入ing...
  • 发表于 3年前
  • 阅读 225
  • 收藏 8
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: A星算法入门之入ing...

几天以来的瞎折腾,能算入门么?

漫漫几千里,A星算法这么走。


测试程序:

public class AStarTest {


    /**

     * @param  args

     */

    public static void main(String[] args) {


        int[][] mySearchArea = new int[][] {

        {1, 1, 1, 1, 1, 1, 1, 1},

        {1, 1, 1, 1, 0, 1, 1, 1},

        {1, 1, 1, 1, 0, 1, 1, 1},

        {1, 1, 1, 1, 0, 1, 1, 1},

        {1, 1, 1, 1, 1, 1, 1, 1},

        {1, 1, 1, 1, 1, 1, 1, 1}

        };

        AStar astar = new AStar(mySearchArea, 8, 6);


        System.out.println("Pathfinding by A*...");

        long st = new Date().getTime();


        List<AStarNode> list = astar.find(2, 2, 2, 6);

        if (list.size() > 0) {

            for (int i = 0; i < list.size(); i++) {

                mySearchArea[list.get(i).getX()][list.get(i).getY()] = AStarConstants.NOTE_ONPATH;

            }


            System.out.println("--------------->Y");

            System.out.println(" 012345678901234Y");

            for (int i = 0; i < mySearchArea.length; i++) {

                System.out.print(i % 10);

                for (int j = 0; j < mySearchArea[0].length; j++) {

                    if (mySearchArea[i][j] == AStarConstants.NOTE_ONPATH) {

                        System.out.print("*");

                    } else {

                        if (mySearchArea[i][j] == AStarConstants.NOTE_UNWALKABLE) {

                            System.out.print("=");

                        } else {

                            System.out.print(" ");

                        }

                    }

                }

                System.out.println();

            }

        } else {

            System.out.println("没有通路。");

        }

        System.out.println("X------------------");

        System.out.println("end 用时:" + (new Date().getTime() - st));

    }

}


结果:

Pathfinding by A*...

--------------->Y

 012345678901234Y

0        

1    =   

2  * = * 

3   *= * 

4   ***  

5        

X------------------

end 用时:15


今后的预定

1.在实际中结合图,进行泛化。

2.实现A*的嵌套搜索。

先遐想一番吧。憧憬总是那么的美好。


标签: A * A star A星 算法
共有 人打赏支持
粉丝 124
博文 173
码字总数 281345
×
壶漏子
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: