zoukankan      html  css  js  c++  java
  • 029 寻找出口——迷宫小游戏(do while)

    涉及行列循环习惯上用法双层for循环,此篇我们用两个do while循环来实现。迷宫的节点信息用二维数组因为要判断节点的通断情况,在内层的do while循环中再嵌套一个switch判断。

    算法流程镇楼!

    #include <iostream>
    using namespace std;

    int main()
    {
    int migong[5][5]={{0,0,1,1,1},{1,0,0,1,1},{1,1,0,1,1},{1,1,0,0,1},{1,1,1,0,2}}; //创建迷宫
    int row,column;
    int path_row[25];
    int path_column[25];
    for(int i=0;i<25;i++)
    path_row[i]=path_column[i]=0;

    row=0;
    column=0;
    int count=0;

    do{
    column=0;
    do{
    switch(migong[row][column]){
    case 0:
    path_row[count]=row;
    path_column[count]=column;
    cout<<"加油,快要找到出口了"<<endl;
    count++;
    break;
    case 1:
    cout<<"不可通行"<<endl;
    break;
    case 2:
    path_row[count]=row;
    path_column[count]=column;
    cout<<"到达出口"<<endl;
    count++;
    break;
    }
    column +=1;
    }while(column<5);
    row +=1;
    }while(row<5);

    cout<<"到达出口的路径为:"<<endl;
    for(int j=0;j<count;j++)
    {
    cout<<"("<<path_row[j]<<","<<path_column[j]<<")->";
    }
    cout<<endl;

    return 0;
    }

    运行结果:

     

     分析:这款迷宫设计比较简单,主要是为了实践do while循环。运行之初输入自己设计的节点二维矩阵,经分析和测试,要使输出结果正常,设计的迷宫不可有分支岔道,不能有迂回线路,通路宽度需为1。否则程序打印的路径就是顺序的逐行可以通行的点,以此程序为基础加上其他功能改进较好。

  • 相关阅读:
    linux grep --我最喜欢的命令~~
    svmrank 的误差惩罚因子c选择 经验
    转:机器学习中的算法(2)-支持向量机(SVM)基础
    转:关于python文件操作大全
    python 求两个时间差
    多个excel合并(excel2007)
    oracle12c 新建表空间
    数据库表被锁了
    join ,left join ,right join有什么区别
    最简洁的权限(菜单)控制
  • 原文地址:https://www.cnblogs.com/butta/p/6393969.html
Copyright © 2011-2022 走看看