资源简介
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个文件信息
相关资源
- 数据结构之迷宫求解完整代码(C语言
- 单片机 C语言温度控制程序
- 51单片机-光立方-C语言
- 课程设计 c语言 学生选课系统
- C语言 人事管理系统
- c语言实现考试管理系统选择题
- 课程信息管理系统 C语言版本 C语言
- 中国大学MOOC-翁恺-C语言程序设计习题
- c语言多线程计算PI
- 东北大学课程设计—编译原理课程设
- 这是用C语言实现模糊控制的算法程序
- 滴水逆向 文件操作pe修改C语言源代码
- C语言:中缀算术表达式求值栈 附答案
- 用C语言实现DPSK数字信号调制
- 单片机电子琴设计用C语言编写
- 基于Linux消息队列的简易聊天室(C语
- C语言高级编程技术 很好的一本书
- C语言矩阵相乘动态数组,文件读写
- 步进伺服电机加减速控制C语言
- 模拟文件系统的c语言实现
- (严蔚敏)数据结构视频教程C语言版
- c语言车票管理系统
- C 经典100例 C语言的经典小程序,100个
- 编写C语言程序,模拟UNIX磁盘空间管理
- 基于C语言实现的网络爬虫
- 国密SM4的5中模式C语言实现,vs工程,
- C语言数据结构程序表达式求值 二叉树
- C语言练习指针及答案
- 北理乐学 C语言 编程题源代码
- 基于linux下的图像缩小 c语言
评论
共有 条评论