栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言实现迷宫问题

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言实现迷宫问题

1. 首先创建地图
	int i=0,j=0;
	int a[8][8];
	for(i=0;i<8;i++){
		for(j=0;j<8;j++){
			if(i==0||i==7||j==0||j==7){
				a[i][j]=1;
			}else{
				a[i][j]=0;
			}
		}
	}
	srand((unsigned)time(NULL));
	int m=rand()%6+1;
	int n=rand()%6+1;
	a[m][n]=1;
	printf("=====地图情况=====n"); 
	for(i=0;i<8;i++){
	  for(j=0;j<8;j++){
		 printf("%d ",a[i][j]);
		}
		printf("n");
	}

 

这里我们就得到了地图的情况,我们这里使用了srand函数来随机生成一个障碍物。

接下来我们就应该实现走迷宫

2. 走迷宫
bool FindWay(int a[8][8],int i,int j){
	if(a[6][6]==2){
		printf("到达世界最高城理塘!!n");
		return true;
	}else{
		if(a[i][j]==0){
			a[i][j]=2;//表示已经走过该位置
			if(FindWay(a,i,j+1)){ //上下左右先后顺序随意 
				return true;
			}else if(FindWay(a,i+1,j)){
				return true;
			}else if(FindWay(a,i-1,j)){
				return true;
			}else if(FindWay(a,i,j-1)){
				return true;
			}
			else{
				a[i][j]=3;//此路不可通
				return false;
			}
		}else{//已经走过或者遇见障碍物或者此路不可通
			return false;
		}
	}
}

这样我们就可以实现简单迷宫问题

 

 如果感兴趣的话可以尝试改变顺序来改变路径。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/834962.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号