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

📄 migongwenti.cpp.cpp

📁 计算迷宫问题
💻 CPP
字号:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
void main()
{   
	int m,n,i,j,kind,step;
	int Maze[50][50];
	int row[50];
	int col[50];	
	printf("input m,n:");
    scanf("%d,%d",&m,&n);
	if(m>50||n>50)
		printf("it is a wrong number!");
    for(i=0;i<=m+1;i++)
       for(j=0;j<=n+1;j++)
	   {
       	 if(i == 0 || j == 0 || i == m + 1 || j == n + 1)
				Maze[i][j] = 1;
         else
		 Maze[i][j]=(rand()%10>7)?1:0;
    }     
    Maze[1][1]=0;
	Maze[m][n]=0;    
    i=1;
	j=1;
    kind=0;
	step=0;
    while((kind!=6)&&(kind!=7))
	{
    	if((i==m)&&(j==n))
		{
			kind=6;
			Maze[i][j]=kind;
			continue;
		}
        if((Maze[i][j+1]==0)&&(kind!=4))
		{
           row[step]=i;col[step]=j;
           kind=2;
		   Maze[i][j]=kind;
           step++;
		   j++;
           continue;	
        }             
        if((Maze[i+1][j]==0)&&(kind!=5))
		{
           row[step]=i;
		   col[step]=j;
           kind=3;
		   Maze[i][j]=kind;
           step++;
		   i++;
           continue;	
        }
        if((Maze[i][j-1]==0)&&(kind!=2))
		{
           row[step]=i;
		   col[step]=j;
           kind=4;
		   Maze[i][j]=kind;
           step++;
		   j--;
           continue;	
        }
        if((Maze[i-1][j]==0)&&(kind!=3))
		{
           row[step]=i;
		   col[step]=j;
           kind=5;
		   Maze[i][j]=kind;
           step++;
		   i--;
           continue;	
        }
        if((i==1)&&(j==1))
		{
		Maze[1][1]=0;
		Maze[m][n]=0;
		kind=7;
		continue;
		}        
        Maze[i][j]=7;
		step--;
		i=row[step];
		j=col[step];        
    }  
    for(i=0; i<m+2; ++i) 
	{ 
          for(j=0; j<n+2; ++j)
		  {
          switch(Maze[i][j])
		  {
            case 1: printf("■");  break;
            case 2: printf("→");  break;
            case 3: printf("↓");  break;
            case 4: printf("←");  break;
            case 5: printf("↑");  break;
            case 6: printf("|>");  break;
          default: printf("  ");  break; 
		  }
          } 
          printf("\n"); 
	}
}

⌨️ 快捷键说明

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