📄 main_mg.cpp
字号:
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <iostream.h>
#include "Stack_Mg.h"
#include "Mi_Gong.h"
void main()
{
cout<<"********************************************************************"<<endl;
cout<<"* 1. 本程序根据你输入的行,列,复杂水平,自动生成一个矩阵图形迷宫。"<<endl;
cout<<"* 2. &表示迷宫入口,#表示迷宫出口。"<<endl;
cout<<"* 3. 0表示不可行走的障碍,1表示可以行走的路径。"<<endl;
cout<<"* 4. 程序自动寻路,用文字显示所有搜索的路径。"<<endl;
cout<<"* 5. 再用*标识最后走通的路径。"<<endl;
cout<<"* 6. 此迷宫现最大支持14*14矩阵图形迷宫。"<<endl;
cout<<"********************************************************************"<<endl;
Stack s1;
stack s2; //存放走过的路径
GO z;
s2.InitStack(s1,1000); // 初始化存放路径的栈
int x(0),y(0),zz(0);
do
{
cout<<"请输入迷宫行数(4~14):";
cin>>y;
if(y<4||y>14)
{
cout<<"\t^^请输入的行数在以下区间取值: [4,14]"<<endl;
}
}while(y<4||y>14);
do
{
cout<<"请输入迷宫列数(4~14):";
cin>>x;
if(x<4||x>14)
{
cout<<"\t^^请输入的列数在以下区间取值: [4,14]"<<endl;
}
}while(x<4||x>14);
cout<<"障碍级别(1~+∞ 难度逐渐降低): ";
cin>>zz;
z.InitMi_Gong(x,y,zz);
cout<<"走出迷宫的步骤:"<<endl;
do
{
if(z.GoOn(z))
{
s2.Push(s1,z.NowPort);
z.FindPort(z);
}
else
z.GoBack();
}while(z.NowPort.Pass!='#');
z.m[z.NowPort.mx][z.NowPort.my].Pass='*'; //显示当前位置
Mi_Gong temp;
do
{
temp=s2.Pop(s1);
z.m[temp.mx][temp.my].Pass='*';
}while(!s2.StackEmpty(s1)); //给走过的路径表示成*
int i(0),j(0);
cout<<endl;
cout<<"最后的迷宫:";
for(i=0;i<x;i++)
{
cout<<endl;
for(j=0;j<y;j++)
cout<<z.m[i][j].Pass<<" ";
}
cout<<endl<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -