为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

算法之走迷宫[宝典]

2017-12-13 4页 doc 26KB 13阅读

用户头像

is_554469

暂无简介

举报
算法之走迷宫[宝典]算法之走迷宫[宝典] 算法之走迷宫 走迷宫游戏我想大家都玩过,利用算法解决走迷宫问题是我们要考虑的问题。 走迷宫在算法中设置一个二维数组,数组中只有0和1,0代表此路可通,1代 表此路不可通。数组初始化如下: 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 这是8*8的数组,通过观察应该有很多条路,但是算法从第一个位置开...
算法之走迷宫[宝典]
算法之走迷宫[宝典] 算法之走迷宫 走迷宫游戏我想大家都玩过,利用算法解决走迷宫问题是我们要考虑的问题。 走迷宫在算法中设置一个二维数组,数组中只有0和1,0代表此路可通,1代 表此路不可通。数组初始化如下: 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 这是8*8的数组,通过观察应该有很多条路,但是算法从第一个位置开始向下找 到走出迷宫的路。 C语言算法代码如下: #include "stdafx.h" //#include"stdio.h" //#include"conio.h" int maze[8][8]={ {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 fx[4]={1,-1,0,0}; int fy[4]={0,0,-1,1};/*控制前后上下的走法,下标起点为0*/ int i,j,k,total; void out()/*输出函数*/ { int i,j; for(i=0;i<8;i++) { for(j=0;j<8;j++) { if(maze[i][j]==3) { printf("V "); total++; } else printf("* "); } printf("\n"); } } int check(int i,int j,int k) { int flag=1; i=i+fx[k]; j=j+fy[k]; if(i<0||i>7||j<0||j>7)/*是否在迷宫内*/ flag=0; if(maze[i][j]!=0)/*是否可行*/ flag=0; return(flag); } void search(int i,int j) { int k,newi,newj; for(k=0;k<4;k++) /*搜索可达方格*/ if(check(i,j,k) == 1) { newi=i+fx[k]; newj=j+fy[k]; maze[newi][newj]=3; /*来到新位置后,设置已走变量*/ if(newi==7&&newj==7) /*如果到了出口就则输出,否则下一步递归*/ out(); else search(newi,newj); } maze[i][j]=2;/*某一方格只能走入死胡同*/ } int main() { maze[0][0]=3;/*入口坐标设置已走标志*/ search(0,0); printf("\n total is:%d",total); /*统计总步数*/ //getch(); return 0; } 运行结果如下:
/
本文档为【算法之走迷宫[宝典]】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
热门搜索

历史搜索

    清空历史搜索