zoukankan      html  css  js  c++  java
  • 老鼠走迷宫

    #include<iostream>
    using namespace std;
    
    int migo[7][7]={
    {2, 2, 2, 2, 2, 2, 2},
    {2, 0, 0, 0, 0, 0, 2},
    {2, 0, 2, 0, 2, 0, 2},
    {2, 0, 0, 0, 0, 2, 2},
    {2, 2, 0, 2, 0, 2, 2},
    {2, 0, 0, 0, 0, 0, 2},
    {2, 2, 2, 2, 2, 2, 2}};//迷宫图
    
    int startX=1,startY=1;
    int endX=5,endY=5;
    
    int flag=0;
    
    int find(int x,int y)
    {
        migo[x][y]=1;
        if(x==endX&&y==endY)
            flag=1;
        if(migo[x][y+1]==0&&flag!=1) 
            find(x,y+1);
        if(migo[x][y-1]==0&&flag!=1)
            find(x,y-1);
        if(migo[x+1][y]==0&&flag!=1)
            find(x+1,y);
        if(migo[x-1][y]==0&&flag!=1)
            find(x-1,y);
        if(flag!=1)
            migo[x][y]=0;
        return flag;
    }
    View Code
    int main(int argc, char **argv)
    {
        int i,j;
        printf("显示迷宫:
    ");
        for(i=0;i<7;i++)
        {
          for(j=0;j<7;j++)
           if(migo[i][j]==2)
            printf("");
           else
            printf(" ");
           printf("
    ");
        }
        
         if(find(startX,startY)==0)
         {
          printf("
    没有找到出口!
    ");
         }
         else
         {
          printf("
    显示路径:
    ");
          for(i=0;i<7;i++)
          {
           for(j=0;j<7;j++)
           {
            if(migo[i][j]==2)
             printf("");
            else if(migo[i][j]==1)
             printf("*");
            else
             printf(" ");
           }
           printf("
    ");
          }
         }
         return 0;
    }
    View Code

    最终代码:

    //老鼠迷宫 左上右下 
    #include<iostream>
    using namespace std;
    int migo[7][7]={
    {2, 2, 2, 2, 2, 2, 2},
    {2, 0, 0, 0, 0, 0, 2},
    {2, 0, 2, 0, 2, 0, 2},
    {2, 0, 0, 0, 0, 2, 2},
    {2, 2, 0, 2, 0, 2, 2},
    {2, 0, 0, 0, 0, 0, 2},
    {2, 2, 2, 2, 2, 2, 2}};//迷宫图
     int startx=1,starty=1;
     int endx=5,endy=5;
     int flag=0;
     
     
    int find(int x,int y){
        migo[x][y]=1;//标记已经访问
        if(x==endx&&y==endy)  flag=1;
        if(migo[x-1][y]==0&&!flag) find(x-1,y);
        if(migo[x][y+1]==0&&!flag) find(x,y+1);
        if(migo[x+1][y]==0&&!flag) find(x+1,y);
        if(migo[x][y+1]==0&&!flag) find(x,y+1);
        if(!flag) migo[x][y]=0; //回溯 
        return flag; 
    }
    int main()
    {
        int i,j;
        for(int i=0;i<7;i++){
            for(int j=0;j<7;j++)
            if(migo[i][j]==2) cout<<"*";
            else cout<<"$";
            cout<<endl;
        }
        if(find(endx,endy)==0) cout<<"没出口"<<endl;
        else cout<<"成功"<<endl;
    } 
    View Code
  • 相关阅读:
    线性dp
    Python3.6.5编译报错 configure: error: no acceptable C compiler found in $PATH
    hadoop伪分布式安装流程
    hadoop需要修改的配置文件
    Linux 免密登录和配置环境变量
    虚拟机修改主机名
    Netty自定义解码器
    Java 操作KafKa API
    Mysql分表:Merge
    CentOS7虚拟机配置ip地址
  • 原文地址:https://www.cnblogs.com/helloworld2019/p/10353957.html
Copyright © 2011-2022 走看看