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。否则程序打印的路径就是顺序的逐行可以通行的点,以此程序为基础加上其他功能改进较好。

 

posted on 2017-02-13 15:31  布塔  阅读(262)  评论(0编辑  收藏  举报

导航