优达学院的A*算法的c++实现
算法原理(A* Pseudocode)
- 初始化一个空的openlist,存放open 节点
- 第一个open节点是starting point,
- x,y 坐标
- g=0,h 是被启发函数给算出来,可以自定义
- 加到open表里面,打上closed标签
- 只要这个openlist 不是空的,一直进行一下
- 根据f值找出最小的节点
- popout出来,给其加上path的状态,表明是路线中的一个节店
- 如果这个节点是终点,end,返回,如果不是
- 继续寻找邻居,只要不是obstacle都可以加进去openlist,打上closed 的标签
- 如果openlist空了,都还没有找到,就没有找到
体会
-
个人来说算法需要实现一下才知道细节,很值得体会
-
成功用vscode 和cmake 进行编译调试
-
过程中理解及时的unite test多么重要,过程中有一个>=写成>结果一直出错
-
但是优达的workspace 不知道怎么进行代码申明/定义保护的,直接用优达的代码重复引用,把unit test 好好弄一下的,放一个连接,有时间回来再看
https://www.cnblogs.com/Dyleaf/p/7898167.html -
vscode 和git一起,很方便,这个网上挺多的,操作没什么难度,进阶比较难,git add/commit/push三部曲