注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

告别迷茫

梦想与现实的差距,就是我们生活的意义。因为我们有差距,我们才会一直积累,在努力。

 
 
 

日志

 
 

Maze c++  

2014-10-17 22:04:10|  分类: 数据结构的实践环 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

#include<cstdlib>
#include "StdAfx.h"
#include<iostream>
#include<string>
#include<vector>
using namespace std;

class Maze
{
public:

void solve();
Maze()
{
cout << "请输入迷宫阵列,1代表通路,0代表障碍,每输入一行用回车表确认"<< endl;
cout << "输入完成后请输入'ok'以表示之 " << endl;
// 读入迷宫的状态
string cellstr;
cin>>cellstr;
while(cellstr!="ok")
{
cells.push_back(cellstr);
clowns=cellstr.size();//字符的长度
cin>>cellstr;
}
rows=cells.size();//vector 保存字符串的个数
}
private:
vector<string> cells;
//用来储存棋子
int rows,clowns;
bool Valid(int rows,int clown);
// 用于判断位置(row,column)是否可通行,是返回true
bool exitMaze(int rows,int clown);
// 从位置(row,column)出发,穿越迷宫,成功返回true;
// 用于判断位置(row,column)是否可通行,是返回true;
};

bool Maze::exitMaze(int row,int clown)
{
//走过的位置用标识;
bool done=false;
if(Valid(row,clown))
{
cells[row][clown]='B';//不管是不是通道,都把他标记为走过的,后面的东西,回溯回来的时候自然的标记为P了;
if(row==(rows-1)&&clown==(clowns-1))
done=true;
else
{
done=exitMaze(row,clown+1);
if(!done)
done=exitMaze(row+1,clown);
if(!done)
done=exitMaze(row,clown-1);
if(!done)
done=exitMaze(row-1,clown);
}
//最后的走到了终点,才会来找我们的这句话,不断的回溯;
if(done)
{
cells[row][clown]='p';
}
}
return done;

}
void Maze::solve()
{
int row=0,clown=0;

bool done=Maze::exitMaze(row,clown);
if(done)
{
cout << "恭喜!成功穿过迷宫!穿越路径为:" << endl;
for (int i = 0; i < rows; ++i )
{
for (int j = 0; j < clowns; ++j)
cout << cells[i][j];
cout << endl;
}
}
else
cout << "对不起,此迷宫无法穿越" << endl;
}
bool Maze::Valid(int row,int clown)
{
bool path=false;
if(row>=0&&row<rows&&clown>=0&&clown<clowns&&cells[row][clown]=='1')
{
path=true;
}
return path;
}
int main()
{
cout << "****************欢迎使用迷宫模拟程序*************" << endl;
Maze MazeExc;
MazeExc.solve();
//system("pause");
return 0;
}

Maze  c++ - 983433479 -  告别迷茫
 
  评论这张
 
阅读(10)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017