老鼠走迷官(二)
来源:互联网 发布:iphone拨号软件 编辑:程序博客网 时间:2024/06/11 19:48
由于迷宫的设计,老鼠走迷宫的入口至出口路径可能不只一条,如何求出所有的路径。
只要在老鼠走至出口时显示经过的路径,然后退 回上一格重新选择下一个位置继续递回就可以了!
#include <iostream>
using namespace std;
int maze[9][9] = {
{2, 2, 2, 2, 2, 2, 2, 2, 2},
{2, 0, 0, 0, 0, 0, 0, 0, 2},
{2, 0, 2, 2, 0, 2, 2, 0, 2},
{2, 0, 2, 0, 0, 2, 0, 0, 2},
{2, 0, 2, 0, 2, 0, 2, 0, 2},
{2, 0, 0, 0, 0, 0, 2, 0, 2},
{2, 2, 0, 2, 2, 0, 2, 2, 2},
{2, 0, 0, 0, 0, 0, 0, 0, 2},
{2, 2, 2, 2, 2, 2, 2, 2, 2}
};
//始点(1,1),终点(7,7)
int startI=1,startJ=1;
int endI=7,endJ=7;
void visit(int,int);
int main()
{
int i,j;
cout<<"迷宫如下:\n\n";
for(i=0;i<9;i++)
{
for(j=0;j<9;j++)
{
if(maze[i][j]==2)
cout<<"O "; //X表示墙壁
else
cout<<" "; //I表示道路
}
cout<<endl;
}
visit(startI,startJ);
cout<<endl;
return 0;
}
void visit(int i,int j)
{
int m,n;
maze[i][j]=1; //当前位置标志为1
//如果当前位置位于终点处,则成功
if(i==endI && j==endJ)
{
cout<<"\n显示路径:\n";
for(m=0;m<9;m++)
{
for(n=0;n<9;n++)
{
if(maze[m][n]==2)
cout<<"O ";
else if(maze[m][n]==1)
cout<<"* ";
else
cout<<" ";
}
cout<<endl;
}
}
if(maze[i][j+1]==0)
visit(i,j+1);
if(maze[i+1][j]==0)
visit(i+1,j);
if(maze[i][j-1]==0)
visit(i,j-1);
if(maze[i-1][j]==0)
visit(i-1,j);
maze[i][j]=0;
}
- 老鼠走迷官(二)
- 老鼠走迷官(二)
- 每日一算法:老鼠走迷官(二)
- Algorithm Gossip: 老鼠走迷官(二)
- 6.Algorithm Gossip: 老鼠走迷官(二)
- 数据结构经典算法(6)老鼠走迷官(二)
- 老鼠走迷官(一)
- 老鼠走迷官(一)
- 老鼠走迷官(一)
- 猫捉老鼠问题系列(二)
- Algorithm Gossip:老鼠走迷宫(二)
- 老鼠走迷宫二
- Algorithm Gossip: 老鼠走迷官(一)
- 5.Algorithm Gossip: 老鼠走迷官(一)
- 老鼠走迷官java实现
- 老鼠
- 老鼠
- 数据结构经典算法(5)老鼠走迷官(一)
- Qt多线程编程中的对象线程与函数执行线程
- stm32快速学习4——串口发送字符
- 1570C旅行(关于路径条数问题)
- Jquery实现无刷新DropDownList联动
- 平方乘算法实现
- 老鼠走迷官(二)
- MSP430 JTAG引脚图
- 周末做什么
- 其實yahoo公司也不是想像中那麼末日
- 全球最好的10的商品搜索引擎
- Android开发学习之使用ViewPager+PagerTabStrip制作可滑动的Tab
- uva 10294 Arif in Dhaka (First Love Part 2)
- 数据结构c语言实现之顺序线性表
- hdu 1596 find the safest road