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

📄 mazefrm.cpp

📁 用C++BUILDER做的一个迷宫,可以实现深度优先,广度优先和启发式搜索算法
💻 CPP
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Maze.h"
#include "MazeFrm.h"
#include "SetUpFrm.h"
#include "HelpFrm.h"

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFrmInterface *FrmInterface;
Maze m=Maze();
//---------------------------------------------------------------------------
__fastcall TFrmInterface::TFrmInterface(TComponent* Owner)
        : TForm(Owner)
{
       xRow=StrToInt(edtx->Text);//初始化行数
       yCol=StrToInt(edty->Text);//初始化列数
       Tempx=StrToInt(edtx->Text);
       Tempy=StrToInt(edty->Text);
       m.CreateMaze(24,24,FrmInterface);
       m.MakeMaze(24,24,0.25);
}
//---------------------------------------------------------------------------
void __fastcall TFrmInterface::Button1Click(TObject *Sender)
{
   if(xRow<8||yCol<8||xRow>40||yCol>40||edtx->Text.IsEmpty()||edty->Text.IsEmpty())
   {
      Application->MessageBox("请输入8~40之间的数","提示",MB_OK);
      return;
   }
   if(Tempx!=xRow||Tempy!=yCol)
   {
   m.DeleteShp(Tempx,Tempy);
   m.CreateMaze(xRow,yCol,FrmInterface);
   }
   m.MakeMaze(xRow,yCol,FrmSetUp->bili);
   Tempx=xRow;
   Tempy=yCol;
}
//---------------------------------------------------------------------------
void __fastcall TFrmInterface::edtxChange(TObject *Sender)
{
   if(!edtx->Text.IsEmpty())
   xRow=StrToInt(edtx->Text);
}
//---------------------------------------------------------------------------
void __fastcall TFrmInterface::edtyChange(TObject *Sender)
{
   if(!edty->Text.IsEmpty())
    yCol=StrToInt(edty->Text);
}
//---------------------------------------------------------------------------
void __fastcall TFrmInterface::Button2Click(TObject *Sender)
{
   FrmSetUp->ShowModal();
}
//---------------------------------------------------------------------------

void __fastcall TFrmInterface::Button3Click(TObject *Sender)
{
   if(rg->ItemIndex==0)//选中广度
   {
       gd=1;
       sd=0;
       ax=0;
   }
   if(rg->ItemIndex==1)//选中深度
   {
       gd=0;
       sd=1;
       ax=0;
   }
   if(rg->ItemIndex==2)//选中A*
   {
       gd=0;
       sd=0;
       ax=1;
   }
   m.SearchRoad(xRow,yCol,gd,sd,ax);
}
//---------------------------------------------------------------------------
void __fastcall TFrmInterface::FormShow(TObject *Sender)
{
       FrmInterface->Left=230;
       FrmInterface->Top=110;
}
//---------------------------------------------------------------------------


void __fastcall TFrmInterface::Button4Click(TObject *Sender)
{
      FrmHelp=new TFrmHelp(this);
      FrmHelp->ShowModal();
      delete FrmHelp;     
}
//---------------------------------------------------------------------------


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -