bfs走迷宫记录最短路径(求大神指…
来源:互联网 发布:指针指向数组 编辑:程序博客网 时间:2024/06/05 20:13
老师在c高级课上说要叫我们做一个走迷宫的游戏,关键还要叫我们设置一个可以自动走完的事例。 int x,y; char sx[1200],sy[1200]; //之前的最短路径x,y int i,tx,ty; a[head+1].x=x; a[head+1].y=y; while(head { head++; for(i=0;i<=3;i++) { tx=a[head].x+str[i][0]; ty=a[head].y+str[i][1]; if(p[tx][ty]=='G') //到终点 { a[end].x=tx; a[end].y=ty; strcpy(a[end].sx,a[head].sx); //复制之前的路径 strcpy(a[end].sy,a[head].sy); a[end].sx[strlen(a[end].sx)]='0'+tx; a[end].sy[strlen(a[end].sy)]='0'+ty; return ; } if(p[tx][ty]!='#'&&tx>=0&&tx<=n-1&&ty>=0&&ty<=m-1&&flag[tx][ty]==0) { flag[tx][ty]=1; a[end].x=tx; a[end].y=ty; strcpy(a[end].sx,a[head].sx); //复制之前的路径 strcpy(a[end].sy,a[head].sy); a[end].sx[strlen(a[end].sx)]='0'+tx; a[end].sy[strlen(a[end].sy)]='0'+ty; end++; } } } int i,j; scanf("%d%d",&n,&m); getchar(); for(i=0;i<=n-1;i++) { for(j=0;j<=m-1;j++) {
scanf("%c",&p[i][j]); if(p[i][j]=='S') //起点 a1=i,b1=j; if(p[i][j]=='G') //终点 a2=i,b2=j; } getchar(); } bfs(a1,b1); printf("%c%c\n",a1,b1); for(i=0;i<=strlen(a[end].sx)-1;i++) //输出到终点是之前的路径 { printf("%c%c\n",a[end].sx[i],a[end].sy[i]); }
老师在屏幕上显示了一遍,但那个不是按最短路径走的,有些情况还走不出,我想做一个按最短路径走的。
之前接触过搜索,老师一提出这个问题我就想到了搜索,但是写的时候发现对我这个菜鸟来说不容易。最短路径当然是bfs,但是有发现因为有队列不好记录。于是,没办法只能按烦的办法来,真心希望大神们给点简便的办法。
我的想法是在记录位置的结构体中加一个字符数组,用来记录之前的所有路径。
#include
#include
inta1,b1,a2,b2,n,m,str[4][2]={{-1,0},{1,0},{0,-1},{0,1}},flag[1200][1200];
int head=0,end=2;
char p[1200][1200];
struct
{
}a[1200];
void bfs(int x,int y)
{
}
int main()
{
}
阅读全文
0 0
- bfs走迷宫记录最短路径(求大神指…
- BFS求迷宫的最短路径
- BFS循环求迷宫最短路径及路径数
- 迷宫最短路径(bfs)
- BFS 迷宫最短路径
- POJ 3322 Bloxorz I(BFS:求迷宫最短路径)
- 【java】走迷宫最短路径
- 用c语言实现双向bfs走迷宫的最短路径.
- BFS 迷宫的最短路径问题
- BFS:迷宫的最短路径
- 小白书之迷宫最短路径bfs
- BFS求解迷宫最短路径
- BFS 模板 【迷宫的最短路径】
- 迷宫的最短路径 -- BFS
- 迷宫问题之最短路径bfs
- BFS 迷宫的最短路径
- 迷宫最短路径长度bfs
- 迷宫的最短路径 (BFS)
- 电路小心,交换
- Linux Posix Timer使用(转载自http://blog.csdn.net/hongszh/article/details/8608781)
- tyvj 1048 田忌赛马
- 你会休息吗?掌握最高效的休息方式
- 求帮助tyvj 1059 过河
- bfs走迷宫记录最短路径(求大神指…
- 判断一个数是不是2的n次幂。
- 马尔克斯写给读者的告别信
- c51中的_crol_和_cror_
- 人类有21种表情!
- 工作后的5种放松方法
- 2014年04月26日
- 国外旅行中慎用的10个手势!
- 欧美电影中的十大狗血情节盘点