资源简介
该程序作用为对于输入的n*n的迷宫(用1表示障碍,0表示可通行),从入口(1,1)出发,找出一条通往(n,n)的最短路径,若有多条路径长度相同 ,则随机输出其中一条。
代码片段和文件信息
/*该程序作用为对于输入的n*n的迷宫(用1表示障碍,0表示可通行),从入口(11)出发,找出一条通往(nn)的最短路径,若有多条路径长度相同 ,则随机输出其中一条。
例如:若n为5,迷宫为
01101
00001
01011
11001
11100
则输出为(*表示路径中的点)
███████
█**██ ██
█****** ██
█ █**███
███****██
████****█
███████
*/
#include
#define maxnum 10000
int n;
int move[4][2]={{01}{10}{-10}{0-1}};//move数组表示可以移动的四个方向
int time[51][51];//time数组存放到达某一点的最少时间(假设每走一步所用时间为1);
char maze[51][51];//maze数组用于存放迷宫地图
struct xy{
int xy;
}prestep[51][51];//prestep数组用于记录到达某一点的前一步的坐标,如prestep[x][y].x里面存放路径中(xy)的前一个点的横坐标,
//prestep[x][y].y存放相应的纵坐标。
void getmaze(void);
void search(int xint yint prexint prey);
int check(int xint y);
void getpath(int xint y);
int main()
{
int ij;
getmaze();
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
time[i][j]=maxnum;//先将时间都设为最大值
search(1100);
if(prestep[n][n].x==0)
printf(“NO WAY!\n“);//无法走出迷宫
else{
getpath(nn);
system(“chcp 437“);
for(i=0;i<=n+1;i++){
for(j=0;j<=n+1;j++)
if(maze[i][j]==‘1‘)
printf(“%c“219);
else if(maze[i][j]==‘*‘)
printf(“**“);
else
printf(“ “) ;
printf(“\n“);
}
}
}
void getmaze(void)//读入迷宫地图
{
int ij;
char c;
printf(“请输入迷宫大小n:\n
- 上一篇:188协议测试软件
- 下一篇:555延时电路原理图
相关资源
- bp神经网络源代码,可直接运行
- 随机森林R语言代码
- 计算机图形学 边填充算法实现代码
- 直流无刷电机方波驱动 stm32 例程代码
- 仿知乎界面小程序源代码
- The Secret Path 3D 3D魔方迷宫[源码][scra
- 贪吃蛇源代码.fla
- 周立功开发板ProASIC3实验-syn_FIFO代码
- IMX385驱动代码.zip
- dotnet 写字板 实验 源代码 不好请要不
- 图像二维小波变换的实现源代码
- 八三编码器设计 VHDL代码 简单,包附
- linux应用层的华容道游戏源代码
- 交通咨询模拟系统完整代码
- http请求状态代码
- 数值分析所有实验代码
- 网上拍卖系统完整源代码
- 音乐代码转换软件 单片机编程时用
- CSMA/CD等动画演示加源代码
- silicon lab公司的收音IC SI47XX全套开发工
- 用51单片机实现G代码翻译
- 合同管理系统的源代码(附数据库)
- 用VC 编写的仿QQ聊天室程序源代码
- web班级网站设计代码
- 38k单片机红外发送代码、keil
- STM32F103 串口程序(完整版)
- 网络唤醒代码
- VPC3_DPV1源代码,Profibus
- PB做的托盘程序(最小化后在左下角显
- RSA算法源码
评论
共有 条评论