⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 abc.text

📁 嘿嘿 推箱子 嘿嘿 大家 要的就要就一下吧啊 啊
💻 TEXT
字号:
#define   MAX   20   
  #include   "stdio.h"   
  int   maze[MAX][MAX];   
  main()   
  {   
  int   i,j;   
  printf("please   input     the   number:");   
  scanf("%d\n",&i);   
  printf("please   input   the     number:");   
  scanf("%d\n",&j);   
  if   ((j<=0)||(j>=8))     j=3;   
  setmatrix(i,j);   
  outmatrix(i);   
  processor(i);   
  return(1);   
  }   
  #define   MID   25000   
  int   setmatrix(i,j)   
  int   i,j;   
  {long   rand,random(),middle;   
  int   m,n,seed;   
  middle=MID+1000*j;   
      for(   m=1;m<=i;m++)   {   
          for(n=1;n<=i;n++)     {   
        seed=random((m*m+j+n)   %   10)   %   10;   
        rand=random(seed);   
        if   (rand>middle)   
              maze[m][n]=1;   
          else   
              maze[m][n]=0;   
    }   
        maze[0][m]=m;   
        maze[m][0]=m;   
        maze[i+1][m]=m;   
        maze[m][i+1]=m;   
          }   
        maze[1][1]=0;   
        maze[i][i]=0;   
        maze[i+1][0]=1;   
        maze[0][i+1]=1;   
        maze[0][0]=0;   
        maze[i+1][i+1]=0;   
        return(1);   
        }   
  #define   MODE   32768   
  long   random(seed)   
  int   seed;   
  {long   rand;   
  rand=(2053*seed+13849)   %   MODE;   
  return(rand);   
  }   
  int     outmatrix(i)   
  int   i;   
  {int   m,n;   
  fprintf(stderr,"the   matrix   is:\n");   
  for   (m=0;m<=i+1;m++)   
  {   
      for   (n=0;n<=i+1;n++)   
      printf("%3d",maze[m][n]);   
      printf("\n");   
  }   
      return(0);   
  }   
  int   move[8][2];   
  void   setmove()   
  {move[0][0]=0;   
    move[0][1]=1;   
    move[1][0]=1;   
    move[1][1]=1;   
    move[2][0]=1;   
    move[2][1]=0;   
    move[3][0]=1;   
    move[3][1]=-1;   
    move[4][0]=0;   
    move[4][1]=-1;   
    move[5][0]=-1;   
    move[5][1]=-1;   
    move[6][0]=-1;   
    move[6][1]=0;   
    move[7][0]=-1;   
    move[7][1]=1;   
    }   
    
    
  int   stack[MAX*MAX][2],mark[MAX][MAX],top;   
  int   processor(i)   
  int   i;   
    {   int   dim,x,y,m,ok;   
          setmove();   
          stack[0][0]=0;   
          stack[0][1]=0;   
          mark[0][0]=1;   
  for(top=0;top<i*i;)   
  {     ok=0;   
  for(dim=0;dim<8;dim++)   
  {   
            x=stack[top][0]+move[dim][0];   
            y=stack[top][1]+move[dim][1];   
    
  if   ((maze[x][y]==0)&&(mark[x][y]==0))   
          {     stack[++top][0]=x;   
                stack[top][1]=y;   
                mark[x][y]=1;   
                ok=1;   
  }   
  else   
  {   x-=move[dim][0];   
  y-=move[dim][1];   
  }   
        if     ((x==i)   &&(y==i))   
          {     fprintf(stderr,"the   passable   path   is   :");   
                outpath();   
                return(0);   
          }   
          else   
          if   (ok)   
  break;}   
            if   (ok==0)   
              if   ((--top)==0)   
  {   fprintf(stderr,"the   matrix   is   no   way   to   go   out   :\n");   
      return(-1);   
  }   
    
    
        }   
  }   
    
  int     outpath()   
  {int   i;   
  for   (i=0;i<top;i++)   {   
  printf("[%d][%d]-->",stack[i][0],stack[i][1]);   
  if   (i%4   ==   0)   printf("\n");   
  }   
  printf("[%d][%d]",stack[top][0],stack[top][1]);   
  return(0);   
  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -