算法之走迷宫.doc

上传人:s9****2 文档编号:543950552 上传时间:2023-06-14 格式:DOC 页数:3 大小:33.01KB
返回 下载 相关 举报
算法之走迷宫.doc_第1页
第1页 / 共3页
算法之走迷宫.doc_第2页
第2页 / 共3页
算法之走迷宫.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《算法之走迷宫.doc》由会员分享,可在线阅读,更多相关《算法之走迷宫.doc(3页珍藏版)》请在金锄头文库上搜索。

1、算法之走迷宫走迷宫游戏我想大家都玩过,利用算法解决走迷宫问题是我们要考虑的问题。走迷宫在算法中设置一个二维数组,数组中只有0和1,0代表此路可通,1代表此路不可通。数组初始化如下:0 0 0 0 0 0 0 00 1 1 1 1 0 1 00 0 0 0 1 0 1 00 1 0 0 0 0 1 00 1 0 1 1 0 1 00 1 0 0 0 0 1 10 1 0 0 1 0 0 00 1 1 1 1 1 1 0这是8*8的数组,通过观察应该有很多条路,但是算法从第一个位置开始向下找到走出迷宫的路。C语言算法代码如下:#include stdafx.h/#includestdio.h/#i

2、ncludeconio.hint maze88=0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,1,0,0,1,0,1,1,0,1,0,0,1,0,0,0,0,1,1,0,1,0,0,1,0,0,0,0,1,1,1,1,1,1,0;/*存储迷宫*/int fx4=1,-1,0,0;int fy4=0,0,-1,1;/*控制前后上下的走法,下标起点为0*/int i,j,k,total;void out()/*输出函数*/ int i,j; for(i=0;i8;i+) for(j=0;j8;j+) if(mazeij=3)

3、 printf(V ); total+; elseprintf(* ); printf(n); int check(int i,int j,int k) int flag=1;i=i+fxk;j=j+fyk;if(i7|j7)/*是否在迷宫内*/ flag=0;if(mazeij!=0)/*是否可行*/ flag=0;return(flag);void search(int i,int j) int k,newi,newj; for(k=0;k4;k+) /*搜索可达方格*/ if(check(i,j,k) = 1) newi=i+fxk; newj=j+fyk; mazenewinewj=3; /*来到新位置后,设置已走变量*/ if(newi=7&newj=7) /*如果到了出口就则输出,否则下一步递归*/ out(); else search(newi,newj); mazeij=2;/*某一方格只能走入死胡同*/int main() maze00=3;/*入口坐标设置已走标志*/ search(0,0); printf(n total is:%d,total); /*统计总步数*/ /getch(); return 0;运行结果如下:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号