21xrx.com
2025-06-09 22:10:27 Monday
文章检索 我的文章 写文章
C++代码:老鼠走迷宫
2023-07-11 08:12:08 深夜i     --     --
C++ 老鼠 迷宫 路径解决 算法

在计算机编程中,迷宫问题一直都是最受欢迎的问题之一。尤其是老鼠能否顺利走出迷宫的问题更是备受关注。

C++语言正是针对这类问题而生的,可以帮助开发者轻松地编写老鼠走迷宫的代码。

下面是一个基于C++语言的老鼠走迷宫的代码示例:

#include<iostream>
#include<cstring>
using namespace std;
int n,m,map[101][101],vis[101][101];
int fx[]=0;//方向数组
int fy[]=-1;
bool dfs(int x,int y){
  if(x<1||x>n||y<1||y>m)//越界
    return false;
  if(map[x][y]==0)//该点为障碍
    return false;
  if(vis[x][y]==1)//该点已访问过
    return false;
  if(x==n&&y==m)//出口
    return true;
  vis[x][y]=1;
  for(int i=0;i<4;i++){//向四个方向搜索
    int xx=x+fx[i],yy=y+fy[i];
    if(dfs(xx,yy)==true)
      return true;
  }
  vis[x][y]=0;
  return false;
}
int main(){
  cin>>n>>m;
  for(int i=1;i<=n;i++)
    for(int j=1;j<=m;j++)
      cin>>map[i][j];
  memset(vis,0,sizeof(vis));//初始化
  if(dfs(1,1)==true)
    cout<<"YES"<<endl;
  else
    cout<<"NO"<<endl;
  return 0;
}

在这个代码示例中,使用了深度优先搜索(DFS)的方法实现老鼠走迷宫。首先,通过输入地图的大小和地图中障碍物的位置等信息,将地图标记,然后采用DFS方法从起点开始搜索,并标记访问情况,直到走到出口。因为有多条路径,每次循环都尝试向四个方向搜索,直到找到一条通向出口的路径或搜索全部路径后都无法到达出口。

总的来说,C++语言可以帮助开发者轻松地解决老鼠走迷宫问题,使得代码编写更加简单高效,也更加有效地提高了代码逻辑的可读性和复杂度。

  
  

评论区