21xrx.com
2024-12-22 21:16:07 Sunday
登录
文章检索 我的文章 写文章
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++语言可以帮助开发者轻松地解决老鼠走迷宫问题,使得代码编写更加简单高效,也更加有效地提高了代码逻辑的可读性和复杂度。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复