首页 > 其他分享 >走迷宫

走迷宫

时间:2023-02-02 14:00:17浏览次数:42  
标签:10 cnt int puzzle 迷宫 endy &&

有bug

#include <iostream>
using namespace std;

int dx[4]={0,0,1,-1},dy[4]={1,-1,0,0};
int startx,starty,endx,endy,w,l; 
char puzzle[10][10];//最多支持10*10迷宫 
bool walked[10][10];
struct point
{
    int x;
    int y;
};
point path[100];

void dfs(int x,int y,int cnt)
{    
    path[cnt].x=x;//记录路径 
    path[cnt].y=y;
    cnt++;
    walked[x][y]=true;//标记走过
    
    if(x==endx&&y==endy)//走到终点 
    {
        for(int i=0;i<cnt-1;i++)
        cout<<path[i].x<<","<<path[i].y<<"->";
        cout<<path[cnt-1].x<<","<<path[cnt-1].y<<endl;
        return;
    }
    bool t=false;
    for(int k=0;k<4;k++)
    {
        x+=dx[k],y+=dy[k];
        if(puzzle[x][y]!='1'&&walked[x][y]==false&&x>=0&&y>=0&&x<w&&y<l)//可以走 
        {
            t=true;
            dfs(x,y,cnt); 
            walked[x][y]=false; 
        }
    }
    if(!t)//无路可走 
    return;
}
 
int main()
{
    cin>>w>>l;
    for(int i=0;i<w;i++)
        for(int j=0;j<l;j++)
        {
            cin>>puzzle[i][j];
            //0可以走,1障碍,@起点,.终点 
            if(puzzle[i][j]=='@')
            {
                startx=i;
                starty=j;
            }
            if(puzzle[i][j]=='.')
            {
                endx=i;
                endy=j;
            }
        }
    dfs(startx,starty,0);    
}

 

标签:10,cnt,int,puzzle,迷宫,endy,&&
From: https://www.cnblogs.com/weinan030416/p/17085776.html

相关文章

  • HDU-1272-小希迷宫
    ​​题目链接​​​小希的迷宫TimeLimit:2000/1000MS(Java/Others)MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):34355AcceptedSubmission(s......
  • poj 3984 迷宫问题(BFS+输出路径)
    迷宫问题TimeLimit: 1000MS MemoryLimit: 65536KTotalSubmissions: 11323 Accepted: 6776Description定义一个二维数组: intmaze[5][5]={ 0,1,......
  • bfs走迷宫
    广度优先搜索(也称宽度优先搜索,缩写BFS,以下采用广度来描述)是连通图的一种遍历算法这一算法也是很多重要的图的算法的原型。Dijkstra单源最短路径算法和Prim最小生成树算法都......
  • C++迷宫求解[2023-01-26]
    C++迷宫求解[2023-01-26](四)迷宫求解(****)1****、问题描述:以一个m*n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个C++语言程序,对任意设定的迷宫,求出一条从入......
  • 迷宫回溯问题分析
    问题:迷宫为8x8的二位数组,其中0为道路,1为墙,人如何在起点和终点之前获取一条可达路径。 自定义的概念: 当前位置:人当前所在的位置,通过当前位置不断变动形成一条路径。......
  • 迷宫
    题目描述下图给出了一个迷宫的平面图,其中标记为 1 的为障碍,标记为 0 的为可以通行的地方。010000000100001001110000迷宫的入口为左上角,出口为右下角,在迷宫中,......
  • 【Java】蚂蚁迷宫问题
    packagecom;publicclassMiGong{publicstaticvoidmain(String[]args){//思路//1、先创建迷宫,用二维数组表示intmap[][]=newint[8][7];......
  • 迷宫机器人最短路径使用tkinter绘制
    起因我想要写一个玩家和机器对战的迷宫游戏。这个项目我没有写完,我实现了最短机器人路径并绘制在tkinter上,以及玩家移动的功能。更多的关于GUI的设计太花时间了我没有写完......
  • python利用matplotlib生成迷宫
    起因我想要写一个项目叫python迷宫游戏,需求是玩家能和机器对抗率先走出迷宫,至少要有两个等级的电脑。慢慢来,首先迷宫游戏需要有一个迷宫并展示出来,这便是这篇博客的目的......
  • P1141 01迷宫
    这题数据有点高级啊(这么高级的数据能不能把它变成黄题呢?不然显得我很垃圾(虽然是事实))思路联通块,把周围四格与自己不同的联通起来,看成一个大块,知道要的坐标属于哪个大块并......