标题:迷宫问题(提归)
只看楼主
shuihan
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-9-22
 问题点数:0 回复次数:0 
迷宫问题(提归)
int oldmap[N][N] ;//提归用的数组,用全局变量节约时间
int yes=0;//*yes是判断是否找到路的标志,1找到,0没找到
int way[100][2],wayn=0;///way是显示路线用的,wayn是统计走了几个格子
void waycopy(int (*x)[N],int(*y)[N]);//为了8个方向的提归,把就迷宫拷贝给新数组
int findway(int (*x)[N],int i,int j);//自动探索函数
void main(void)
{
int map[N[N];



}
void waycopy(int (*oldmap)[N],int(*map[N])
{
int i,j;
for(i=0;i<N;i++)
  for(j=0;j<N;j++)
     oldmap[i][j]=map[i][j];;
}
//////提归找路
int findway(int (*map)[N],int i,int j)
{
 if (i==N-2&&j==n-2)///走到出口
   {

yes=1;/// 标志为1 ,表示成功
return;
    }
 map[i][j]=1;//走过的地方变为1
 waycopy(oldmap,map);///拷贝迷宫图
  if(oldmap[i+1][j+1]==0&&!yes)///判断右下方是否可走
  {
    findway(oldmap,i++,j++);
     if(yes)//如果到底出口,再把值赋给显示路线的way数组,也正是这个原因,所以具体路线是从最后开始保存
      {
        way[wayn][0]=i;
        way[wayn++][1]=j;
         return;
        }
       }
    以下是 另外的 7个方向

开始的  时候  有
int way[100][2],wayn=0;///way是显示路线用的,wayn是统计走了几个格子
其中为什么 把  way[100][2]
置[100][2]??
[wayn]
而[wayn++]?


若把它改成 中国象棋的走法(把马放在任意位置,马能够无重复走完棋盘的每一个位置),怎么改?
搜索更多相关主题的帖子: int 迷宫 void oldmap 变量 
2007-12-25 21:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-194284-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.054261 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved