⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main_mg.cpp

📁 一个好用的迷宫子程序
💻 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 + -