⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mg.cpp

📁 一个用c语言写的迷宫演示程序。借助了其他人共同的智慧
💻 CPP
字号:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#define m 5
#define n 5

int rear;
struct stype{

int x,y,pre;

}hq[400];

int mg[2*m+2][2*m+2];
int zx[4],zy[4];

 void printlj(int rear)

{
    int i;
	i=rear;
	do {printf("你所得的路径为(%d,%d)\n",hq[i].x,hq[i].y);


i=hq[i].pre;

}
while(i!=0);
}
path()
{int i,j,x,y,h,find,front,rear,w,q;
	scanf("%d %d",&q,&w);
	hq[1].x=1;
	hq[1].y=1;
	hq[1].pre=0;
	find=0;
front=1;
rear=1;
	mg[1][1]=-1;
	 while(front<=rear && !find)
	 {x=hq[front].x; 
	  y=hq[front].y;
	for(h=1;h<=4;h++)
	{i=x+zx[h];
	 j=y+zy[h];
	if(mg[i][j]==0)
	 {	rear++;
		hq[rear].x=i;
		hq[rear].y=j;
		hq[rear].pre=front;
	  mg[i][j]=-1;
	 }
	
	 if(i==q && j==w)
	 {    printlj(rear);
	      find=1;
	 }
	}
	front++;}
if(!find){
printf("找不到路径");
printf("\n");
}
return 1;}

int main()
{ int i,j;


printf("     a:请你构建自己的迷宫\n");
printf("     b:输入5行5列的数组,以构件迷宫。。。。\n ");
printf("    c:系统将自动为你的迷宫加上外围墙\n");


for(i=1;i<=m;i++)
	for(j=1;j<=n;j++)
		scanf(" %d",&mg[i][j]);
	for(i=0;i<=m+1;i++)
	{mg[i][0]=1;mg[i][n+1]=1;
}
	for(j=0;j<=n+1;j++){
	mg[0][j]=1;
	mg[m+1][j]=1;
}
	printf("你的迷宫为:\n");
	for(i=0;i<=m+1;i++)//输出迷宫
	{	for(j=0;j<=n+1;j++)
			
			
		printf(" %d",mg[i][j]);
	printf("\n");}	
	printf("     请输入你的出口(入口为0,0)\n");
	zx[1]=1 ; zx[2]=0 ; zx[3]=-1 ;zx[4]=0 ;//定义四个方向的增量
	zy[1]=0 ; zy[2]=1 ; zy[3]=0 ;zy[4]=-1 ;

path();
return 1;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -