迷宫搜索问题最短路_A*算法实现迷宫最短路径搜索(C++实现)

本文介绍了使用C++实现A*算法解决迷宫问题,找到从起点到终点的最短路径。文章包含算法实现的详细代码,并提供了一个9x7的迷宫示例。同时,提到了在不同编译环境下调试的情况。
摘要由CSDN通过智能技术生成

在今天早上的时候,我还到处“求医问药”希望能解决程序中未能解决的问题,郁闷了一天,总算是明白问题是出在什么地方的了。好了,还是先将迷宫算法的解决算法发上来,之后再讨论之前的问题出在什么地方,又是怎样解决的。

迷宫算法如下:

//#############################################################//

//在VC6及vs2005里面都没有调试通过,在MinGW Developer Studio和gCC里面调试通过

#include

#include

#include

#include

#include

using namespace std;

#define MAZE_ROW      9

#define MAZE_COL      7

char maze[MAZE_ROW][MAZE_COL]={

' ',' ',' ','#','#','#','#',

'#','#',' ','#','#','#','#',

' ','#',' ','#','#','#','#',

' ','#',' ',' ',' ',' ',' ',

' ',' ','#','#','#','#',' ',

'#',' ',' ',' ',' ','#',' ',

'#','#',' ','#',' ','#',' ',

' ',' ',' ',' ','#','#',' ',

' ',' ','#',' ',' ','#',' ',

};

typedef struct {

int gn;

int fn;

int flag; //1——in open; 2——in close

}GFN;

map gmap; //g值

int Bi=0, Bj=0;

int Ei=6, Ej=6;

bool opensort(int n1,int n2)

{

map::iterator pos1,pos2;

pos1 = gmap.find(n1);

pos2 = gmap.find(n2);

return pos1->second->fn < pos2->second->fn;

}

void getway(int i,int j,int gn);     //输出路径

void printmaze();

void printway();

bool isok(int i,int j);//判断n1位置为迷宫中可以走的位置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值