A* search:
结合BFS和贪心算法,通常用于游戏寻路。A*是启发式搜索算法的其中一种
BFS:
像涟漪一样一圈一圈往外扩散,但是不会理会终点在哪
广度优先,把起点存入队列,把起点上下左右没有访问过的点加入队列,起点出列。要存节点的状态,可以用数组直接记录状态,或者用结构体添加状态属性。
struct Node
{
int x, y;
int state = 0;
};
int dir[4][2] = {
{-1,0},{0,-1},{1,0},{0,1}
};//左下右上方向
//int room[9][9]={'.'};
void BFS(int dx, int dy)
{
Node start, next;
queue<Node> q;
start.x = dx;
start.y = dy;
q.push(start);
while (!q.empty())
{
start = q.front();
q.pop();
for (int i = 0; i < 4; i++)
{
next.x = start.x + dir[i][0];
next.y = start.y + dir[i][1];
if (next.x &g