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
  • 相关阅读:
    两套经典的用户画像-梁宁
    准研一假期的减脂半自律计划
    网络科学导论【第六章】读书脑图
    常见规则网络
    网络科学导论【第五章】读书脑图
    复杂网络链路预测的研究现状及展望
    Python之@property详解及底层实现介绍
    Python触发异常
    一份较认可的文献阅读方案
    HITS算法简介
  • 原文地址:https://www.cnblogs.com/helloworld2019/p/10353957.html
Copyright © 2011-2022 走看看