资源简介

c语言回溯法走迷宫的源码c语言回溯法走迷宫的源码

资源截图

代码片段和文件信息


#include
#define forward1(st) if(s&&!MAZE[t][k]) if(Next(kt)) return 1
#define forward2(st) if(t&&!MAZE[k][s]) if(Next(sk)) return 1
int  MAZE[100][100]={0};
int  mn;
int  b[2][1000];
int  method=0step=0;
//初始化迷宫
void Init()
{
char a[20][20];
int s[20][20][4]={0};
int ij;
FILE *in;
in=fopen(“maze2.in““r“);
fscanf(in“%d %d\n“&m&n);
for(i=m-1;i>=0;i--){
for(j=0;j fscanf(in“%c“&a[i][j]);
}
fscanf(in“\n“);
}
for(i=m-1;i>=0;i--){
for(j=0;j switch(a[i][j]){ 
case ‘1‘:s[i][j][0]=1;break; //0001
case ‘2‘:s[i][j][1]=1;break; //0010
case ‘3‘:s[i][j][0]=1s[i][j][1]=1;break; //0011
case ‘4‘:s[i][j][2]=1;break; //0100
case ‘5‘:s[i][j][0]=1s[i][j][2]=1;break; //0101
case ‘6‘:s[i][j][1]=1s[i][j][2]=1;break; //0110
case ‘7‘:s[i][j][0]=1s[i][j][1]=1s[i][j][2]=1;break; //0111
case ‘8‘:s[i][j][3]=1;break; //1000
case ‘9‘:s[i][j][0]=1s[i][j][3]=1;break; //1001
case ‘a‘:s[i][j][1]=1s[i][j][3]=1;break; //1010
case ‘A‘:s[i][j][1]=1s[i][j][3]=1;break; //1010
case ‘b‘:s[i][j][0]=1s[i][j][1]=1s[i][j][3]=1;break; //1011
case ‘B‘:s[i][j][0]=1s[i][j][1]=1s[i][j][3]=1;break; //1011
case ‘c‘:s[i][j][2]=1s[i][j][3]=1;break; //1100
case ‘C‘:s[i][j][2]=1s[i][j][3]=1;break; //1100
case ‘d‘:s[i][j][0]=1s[i][j][2]=1s[i][j][3]=1;break; //1101
case ‘D‘:s[i][j][0]=1s[i][j][2]=1s[i][j][3]=1;break; //1101
case ‘e‘:s[i][j][1]=1s[i][j][2]=1s[i][j][3]=1;break; //1110
case ‘E‘:s[i][j][1]=1s[i][j][2]=1s[i][j][3]=1;break; //1110
case ‘f‘:s[i][j][0]=1s[i][j][1]=1s[i][j][2]=1s[i][j][3]=1;break; //1111
case ‘F‘:s[i][j][0]=1s[i][j][1]=1s[i][j][2]=1s[i][j][3]=1;break; //1111
default:printf(“error“); 


}
}
for(i=2*m;i>=0;i-=2){
for(j=0;j<=2*n;j+=2){
MAZE[i][j]=1;
}
}
for(i=m;i>0;i--){
for(j=0;j MAZE[2*i][2*j+1]=s[i-1][j][0];
}
}
for(j=0;j MAZE[0][2*j+1]=s[0][j][1];
}
for(i=m;i>0;i--){
for(j=0;j MAZE[2*i-1][2*j]=s[i-1][j][2];
}
}
for(j=m;j>0;j--)

MAZE[2*j-1][2*n]=s[j-1][n-1][3];
}
m=2*m+1;
n=2*n+1;
for(i=m-1;i>=0;i--)
{
for(j=0;j {
printf(“%2d“MAZE[i][j]);
}
printf(“\n“);
}
fclose(in);
}
//输出结果
void Out(int p)
{
int i;
for(i=0;i {
if((b[1][i+2]-b[1][i])==2)
printf(“U“);
if((b[1][i+2]-b[1][i])==-2)
printf(“D“);
if((b[0][i+2]-b[0][i])==2)
printf(“R“);
if((b[0][i+2]-b[0][i])==-2)
printf(“L“);
}
//最后一步
if((b[1][p-1]-b[1][p-2])==1)
printf(“U“);
if((b[1][p-1]-b[1][p-2])==-1)
printf(“D“);
if((b[0][p-1]-b[0][p-2])==1)
printf(“R“);
if((b[0][p-1]-b[0][p-2])==-1)
printf(“L“);
printf(“\n“);
method++;
}
//寻找下一步
int Next(int xint y)
{
int k;
MAZE[y][x]=-1;
b[

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     180306  2008-06-14 13:09  走迷宫\Debug\maze.exe

     文件      13002  2008-06-14 13:09  走迷宫\Debug\maze.obj

     文件     443392  2008-06-14 13:09  走迷宫\Debug\maze.pdb

     文件      53248  2008-06-14 13:09  走迷宫\Debug\vc60.pdb

     文件     172116  2008-04-30 15:23  走迷宫\Debug\走迷宫.exe

     文件     443392  2008-04-30 15:23  走迷宫\Debug\走迷宫.pdb

     文件       3363  2008-06-14 13:09  走迷宫\maze.c

     文件       3375  2008-06-14 12:40  走迷宫\maze.dsp

     文件        533  2008-06-14 13:15  走迷宫\maze.dsw

     文件         15  2008-05-07 15:51  走迷宫\maze.in

     文件      41984  2008-06-14 13:15  走迷宫\maze.ncb

     文件      48640  2008-06-14 13:15  走迷宫\maze.opt

     文件          0  2008-05-06 23:10  走迷宫\maze.out

     文件       1116  2008-06-14 13:09  走迷宫\maze.plg

     文件          5  2008-04-27 18:46  走迷宫\maze1.ans

     文件         13  2008-04-27 18:46  走迷宫\maze1.in

     文件          3  2008-04-27 18:46  走迷宫\maze10.ans

     文件         65  2008-04-27 18:46  走迷宫\maze10.in

     文件          8  2008-04-27 18:46  走迷宫\maze2.ans

     文件         20  2008-04-27 18:46  走迷宫\maze2.in

     文件         17  2008-04-27 18:46  走迷宫\maze3.ans

     文件         29  2008-04-27 18:46  走迷宫\maze3.in

     文件          2  2008-04-27 18:46  走迷宫\maze4.ans

     文件          8  2008-04-27 18:46  走迷宫\maze4.in

     文件          3  2008-04-27 18:46  走迷宫\maze5.ans

     文件          8  2008-04-27 18:46  走迷宫\maze5.in

     文件          3  2008-04-27 18:46  走迷宫\maze6.ans

     文件         29  2008-04-27 18:46  走迷宫\maze6.in

     文件         20  2008-04-27 18:46  走迷宫\maze7.ans

     文件         40  2008-04-27 18:46  走迷宫\maze7.in

............此处省略14个文件信息

评论

共有 条评论