• 老鼠走迷宫


    #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
  • 相关阅读:
    WPF 模板(二)
    WPF 模板
    WFP 样式(复习用)
    wpf 特效学习
    MVC 开源控件学习
    设计模式学习
    使用带参数方式新增或修改可为空的非字符串类型数据到oralce数据库
    python(13)- 文件处理应用Ⅱ:增删改查
    051孤荷凌寒从零开始学区块链第51天DAPP006
    050孤荷凌寒从零开始学区块链第50天DAPP003
  • 原文地址:https://www.cnblogs.com/helloworld2019/p/10353957.html
Copyright © 2020-2023  润新知