CDN加速镜像 | 设为首页 | 加入收藏夹
当前位置: 首页 资源下载 源码下载 Windows编程 C#编程

文件名称:迷宫求解的非递归算法

  • 所属分类:
  • 标签属性:
  • 上传时间:
    2011-12-19
  • 文件大小:
    854byte
  • 已下载:
    0次
  • 提 供 者:
  • 相关连接:
  • 下载说明:
    别用迅雷下载,失败请重下,重下不扣分!

介绍说明--下载内容来自于网络,使用问题请自行百度

#include #include #include #define N 20 int aa[N][N]; int yes=0; int x[100][2],n=0; void fun1(int (*aa)[N],int (*a)[N]); int fun(int (*a)[N],int i,int j); void begain(int (*t)[N]); void pr(int (*t)[N],int nn); void win(int (*t)[N]); void lose(); void main(void) { int t[N][N]; begain(t); pr(t,0); fun(t,1,1); if(yes) win(t); else lose(); getch(); } void fun1(int (*aa)[N],int (*a)[N]) { int i,j; for(i=0;i<N;i++) for(j=0;j<N;j++) aa[i][j]=a[i][j]; } int fun(int (*a)[N],int i,int j) { if(i==N-2&&j==N-2) { yes=1; return; } a[i][j]=1; fun1(aa,a); if(aa[i+1][j+1]==0&&!yes) { fun(aa,i+1,j+1); if(yes) {x[n][0]=i,x[n++][1]=j;return;} } fun1(aa,a); if(aa[i+1][j]==0&&!yes) { fun(aa,i+1,j); if(yes) {x[n][0]=i,x[n++][1]=j;return;} } fun1(aa,a); if(aa[i][j+1]==0&&!yes) { fun(aa,i,j+1); if(yes) {x[n][0]=i,x[n++][1]=j;return;} } fun1(aa,a); if(aa[i-1][j]==0&&!yes) { fun(aa,i-1,j); if(yes) {x[n][0]=i,x[n++][1]=j;return;} } fun1(aa,a); if(aa[i-1][j+1]==0&&!yes) { fun(aa,i-1,j+1); if(yes) {x[n][0]=i,x[n++][1]=j;return;} } fun1(aa,a); if(aa[i+1][j-1]==0&&!yes) { fun(aa,i+1,j-1); if(yes) {x[n][0]=i,x[n++][1]=j;return;} } fun1(aa,a); if(aa[i][j-1]==0&&!yes) { fun(aa,i,j-1); if(yes) {x[n][0]=i,x[n++][1]=j;return;} } fun1(aa,a); if(aa[i-1][j-1]==0&&!yes) { fun(aa,i-1,j-1); if(yes) {x[n][0]=i,x[n++][1]=j;return;} } } void begain(int (*t)[N]) { int i,j; system(cls); randomize(); for(i=0;i<N;i++) { for(j=0;j<N;j++) { if(i==0||i==N-1||j==0||j==N-1) t[i][j]=1; else if(i==1&&j==1||i==N-2&&j==N-2) t[i][j]=0; else t[i][j]=random(2); } } } void pr(int (*t)[N],int nn) { int i,j,ii; textcolor(RED); gotoxy(1,1); for(i=0;i<N;i++) { for(j=0;j<N;j++) { if(nn!=1) printf(%2d,t[i][j]); else { for(ii=0;ii<n;ii++) { if(x[ii][0]==i&&x[ii][1]==j) { cprintf(%2d,t[i][j]); break; } } if(ii<n) continue; if(i==N-2&&j==N-2) cprintf( 0); else printf(%2d,t[i][j]); } } printf(\n); } } void win(int (*t)[N]) { int i,j,ii,jj; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(x[j][0]==x[i][0]&&x[j][1]==x[i][1]) { for(jj=j,ii=i;jj=0;i--) printf(%3d%3d->,x[i][0],x[i][1]); printf(%3d%3d\n,N-2,N-2); t[1][1]=0; pr(t,1); } void lose() { printf(\nNot find way!\n); }
(系统自动生成,下载前可以参看下载内容)

下载文件列表

压缩包 : 1.rar 列表
1.cpp

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 搜珍网是交换下载平台,只提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。更多...
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或换浏览器;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.

相关评论

暂无评论内容.

发表评论

*快速评论: 推荐 一般 有密码 和说明不符 不是源码或资料 文件不全 不能解压 纯粹是垃圾
*内  容:
*验 证 码:
搜珍网 www.dssz.com