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

📄 migong.c

📁 C编写的迷宫求解
💻 C
字号:
#include "stdio.h"
int p=0;
int a[99];
void push(int ph)/*压入走过的路径*/
{

a[p]=ph;
p++;
}
int pop()/*弹出走过的路径*/
{ 
if(p==0){
return 0;/*empty stack */
}
p--;
return a[p];
}

int pharray[9][9];

void main()
{
int i;
int j;

int s;
int g;
/*迷宫初始化*/
int pharray[10][10]={
{1,1,1,1,1,1,1,1,1,1},
{1,0,1,0,0,0,0,1,0,1},
{1,0,0,1,0,0,0,1,0,1},
{1,0,0,0,0,1,1,0,0,1},
{1,0,1,1,1,0,0,0,0,1},
{1,0,0,0,1,0,0,0,0,1},
{1,0,1,0,0,0,1,0,0,1},
{1,0,1,1,1,0,1,1,0,1},
{1,1,0,0,0,0,0,0,0,1},
{1,1,1,1,1,1,1,1,1,1}
};
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
printf("%d ",pharray[i][j]);
printf("\n");


}
printf(" \n") ;
gotoxy(40,40);
/*向四个方向探索迷宫的路径*/
i=1;
j=1;

pharray[j][i]=31;
again:

if(pharray[j+1][i]==0 && (i!=8 || j!=8) )
{
pharray[j+1][i]=31;
push(j*10+i);
/*printf("%d_",p);
printf("%d_",a[p-1]); */
j=j+1;
goto again;}
else
if(pharray[j][i+1]==0 && (i!=8 || j!=1))
{ pharray[j][i+1]=16;
push(j*10+i);
/* printf("%d_",a[p-1]); */
++i;
goto again; }
else
if(pharray[j][i-1]==0 && (i!=8 || j!=1))
{ pharray[j][i-1]=17;
push(j*10+i);
i=i-1;
goto again; }
else
if(pharray[j-1][i]==0 && (i!=8 || j!=1))
{

pharray[j-1][i]=30;
push(j*10+i);
j=j-1;
goto again; }
else
if(i!=8 && j!=1)
{
if(pharray[i+1][j]==1 && pharray[i][j+1]==1 && pharray[i][j-1]==1 && pharray[i-1][j]==1)
{
printf("迷宫没有出口!");
return; }
else
pharray[j][i]=18;

s=pop();
j=s/10;
i=s%10;

goto again; }
else
push(18);
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
printf("%c ",pharray[i][j]);
printf("\n"); }
for(g=0;g<p;g++){
gotoxy(2*(a[g]%10+1)-1,a[g]/10+12);
sleep(1); }
gotoxy(22,35);
printf("\n");

printf("\n\n\n\n\n\n\n\n");
;
printf("迷宫出口路径为:");
for(g=0;g<p;g++)
{

printf ("%d",a[g]);
printf("__");

}

}

⌨️ 快捷键说明

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