基于A*算法的有障碍寻路
919106840637实验1
应课程要求,我们需要完成三个代码实验,其中利用A*寻路算法完成无人车路径规划 便是其中第一个实验。通过对该算法的浅略学习,基本完成了这个实验
实验所用语言
C++
实验内容
生成一个NxN的二维网格,随机指定一些格子为障碍, 并设定左上角有辆无人车(占一个格子)要去右下角,使用A*算法为该无人车计算起点到终点的不撞到障碍的最优路径。
在这里,我生成的是20*20的网格,随机生成若干个横向以及纵向障碍。关于起点与终点的设定我并没有按照实验内容中规定的左上角和右下角,而是在关于被 y=x 切割的两块区域内随机生成,使实验更具有随机性。其实是因为障碍的生成算法存在问题导致左上角和右下角的连线永远存在。
实验思想及部分代码
本次实验主要分为两个部分,第一是生成对应的地图网格以及起点终点,第二是使用A*算法对终点进行寻路。
用到的头文件有
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <cmath>
#include <cstring>
#include <windows.h>
#include <vector>
#include <algorithm>