基于visual Studio2013解决C语言竞赛题之1082迷宫







题目


解决代码及点评

/************************************************************************/
/* 
82.	试编写一个程序寻找一条通过迷宫的路径。
一个迷宫可以看成是一个矩阵(数组),它有一个入口单元和一个出口单元,图中阴影处表示障碍物,白格表示可以通行的道路。
只能从入口进去,从出口出去,中间只能通过白格子(即只能从一个白格单元走到一个相邻的白格单元,相邻指上、下、左、右四个单元)
,遇见死路时,退回去重找其它路。用户可设入口处(1,1)为2,出口位置(5,6)为-1,白格处送入0,障碍物位置送入1。5表示走过的
*/
/************************************************************************/
#include <stdio.h>
#include <stdlib.h>


bool GO82(int arr[][6],int i,int j,int kk)
{	bool isfound=false;
if (i==4&&j==5)
{
	isfound=true;
	printf("\n大爷出来了\n");
	for (int p=0;p<6;p++)
	{
		for (int q=0;q<6;q++)
		{
			if (arr[p][q]==5)
			{
				printf("%d%d",p,q);
			}
			else
			{
				printf("  ");
			}
		}
		printf("\n");
	}
} 
else
{
	for (int m=0;m<=3;m++)
	{
#pragma region 条件匹配
		if (m==0)
		{	if (kk==2)
		continue;
		if (arr[i][j+1]==0&&j+1<6)
		{	j=j+1;
		arr[i][j]=5;
		}
		else
			continue;
		}
		else	if (m==1)
		{		if (kk==3)
		continue;
		if (arr[i+1][j]==0&&i+1<6)
		{	i=i+1;
		arr[i][j]=5;
		}
		else
			continue;
		}	
		else	if (m==2)
		{	if (kk==0)
		continue;

		if (arr[i][j-1]==0&&j-1>=0)
		{j=j-1;
		arr[i][j]=5;
		}
		else
			continue;
		}	
		else	if (m==3)
		{
			if (kk==1)
				continue;
			if (arr[i-1][j]==0&&i-1>=0)
			{i=i-1;
			arr[i][j]=5;
			}
			else
				continue;
		}
#pragma endregion 条件匹配

		isfound=GO82(arr,i,j,m);
		if (!isfound)
		{
#pragma region 条件匹配
			if (m==0)
			{	arr[i][j]=0;
			j=j-1;
			}


			else	if (m==1)
			{
				arr[i][j]=0;
				i=i-1;

			}	
			else	if (m==2)
			{
				arr[i][j]=0;
				j=j+1;

			}	
			else	if (m==3)
			{
				arr[i][j]=0;
				i=i+1;

			}
#pragma endregion 条件匹配
		}
	}
}

return isfound;
}
void main()
{	int arr[6][6]={0};
arr[0][0]=2;
//arr[4][5]=-1;
arr[0][1]=1;
arr[0][5]=1;
arr[1][3]=1;
arr[1][5]=1;
arr[2][0]=1;
arr[2][2]=1;
arr[2][5]=1;
arr[3][3]=1;
arr[3][4]=1;
arr[3][5]=1;
arr[4][1]=1;
arr[4][2]=1;
arr[5][4]=1;
arr[5][5]=1;
bool temp= GO82(arr,0,0,-10);

if (temp==false)
{
	printf("死路\n");
}





system("pause");
}



代码编译以及运行

由于资源上传太多,资源频道经常被锁定无法上传资源,同学们可以打开VS2013自己创建工程,步骤如下:

1)新建工程

2)选择工程

3)创建完工程如下图:

4)增加文件,右键点击项目

5)在弹出菜单里做以下选择

6)添加文件

7)拷贝代码与运行


程序运行结果


代码下载

http://download.csdn.net/detail/yincheng01/6681845

解压密码:c.itcast.cn






posted on 2013-12-10 12:24  三少爷的剑123  阅读(255)  评论(0编辑  收藏  举报

导航