资源简介
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语言模拟文件管理系统844
- C语言开发实战宝典
- C++中头文件与源文件的作用详解
- C语言代码高亮html输出工具
- 猜数字游戏 c语言代码
- C语言课程设计
- 数字电位器C语言程序
- CCS FFT c语言算法
- 使用C语言编写的病房管理系统
- 通信过程中的RS编译码程序(c语言)
- 计算机二级C语言上机填空,改错,编
- 用回溯法解决八皇后问题C语言实现
- 简易教务管理系统c语言开发文档
- 操作系统课设 读写者问题 c语言实现
- 小波变换算法 c语言版
- C流程图生成器,用C语言代码 生成C语
- 3des加密算法C语言实现
- 简单的C语言点对点聊天程序
- 单片机c语言源程序(51定时器 八个按
- 个人日常财务管理系统(C语言)
- c语言电子商务系统
- 小甲鱼C语言课件 源代码
- 将图片转换为C语言数组的程序
- C语言实现的一个内存泄漏检测程序
- DES加密算法C语言实现
- LINUX下命令行界面的C语言细胞游戏
- 用单片机控制蜂鸣器播放旋律程序(
- 学校超市选址问题(数据结构C语言版
- 电子时钟 有C语言程序,PROTEUS仿真图
- 尚观培训linux许巍老师关于c语言的课
评论
共有 条评论