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

📄 mainform.h

📁 本人用BCB编写的扫雷小游戏
💻 H
字号:
//---------------------------------------------------------------------------

#ifndef MainformH
#define MainformH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Menus.hpp>
#include <ExtCtrls.hpp>
#include <ImgList.hpp>
#include <ComCtrls.hpp>
#include <Graphics.hpp>

const int g_MaxRow = 26;
const int g_MaxCol = 50;
const int g_MinRow = 9;
const int g_MinCol = 9;
const int g_MaxCount = 999;
const int g_MinCount = 10;
#define g_MaxPer  0.926

const int g_Level_1_Row = 9;
const int g_Level_1_Col = 9;
const int g_Level_1_Count = 10;   //12.3 per

const int g_Level_2_Row = 16;
const int g_Level_2_Col = 16;
const int g_Level_2_Count = 40;   //15.6 per

const int g_Level_3_Row = 16;
const int g_Level_3_Col = 30;
const int g_Level_3_Count = 99;  //20.6 per

const int g_Level_4_Row = 26;
const int g_Level_4_Col = 50;
const int g_Level_4_Count = 210;  //22 per

const int g_FaceWidth = 24;
const int g_FaceHeight = 24;
const int g_BlockWidth = 16;
const int g_BlockHeight = 16;
const int g_NumberWidth = 13;
const int g_NumberHeight = 23;

enum {
  f_Smile_Down = 0,
  f_Win = 1,
  f_Sad = 2,
  f_O = 3,
  f_Smile = 4
};

enum {
 b_Blank = 0,
 b_Flag = 1,
 b_QuestionMark = 2,
 b_Exploded = 3,
 b_Wrong = 4,
 b_Bomb = 5,
 b_QuestionMark_Down = 6,
 b_Num8,b_Num7,b_Num6,b_Num5,b_Num4,b_Num3,b_Num2,b_Num1,
 b_Blank_Down
};

enum {
 none_Button = 0,
 l_Button,
 r_Button,
 lr_Button
};

enum {
  g_Gameover,
  g_Waiting,
  g_Pausing,
  g_Sweeping,
  g_Lost,
  g_Win
};

enum {
  l_Easy,
  l_Middle,
  l_Expert,
  l_Professional,
  l_Customize
};

enum status { /* for search blank ..*/
   s_Default,
   s_Opened,
   s_Listed,
};

const TPoint DIR[9] = {
  Point(-1,-1),Point(-1,0),Point(-1,+1),
  Point(0,-1),Point(0,+1),
  Point(+1,-1),Point(+1,0),Point(+1,+1),
  Point(0,0)
};

struct _hero {
  int time;
  AnsiString name;
};

//---------------------------------------------------------------------------
class TMainWin : public TForm
{
__published:	// IDE-managed Components
  TMainMenu *MainMenu1;
  TPanel *Panel_Top;
  TMenuItem *N1;
  TMenuItem *N2;
  TPanel *Panel_Bottom;
  TTimer *GameTimer;
  TImage *Image_Color_Block;
  TImage *Image_Gray_Block;
  TImage *Image_Color_Number;
  TImage *Image_Gray_Number;
  TImage *Image_Color_Face;
  TImage *Image_Gray_Face;
  TImage *Image_Middle;
  TImage *Image_Main;
  TPanel *Panel_Left;
  TPanel *Panel_Right;
  TImage *Image_Left;
  TImage *Image_Right;
  TMenuItem *N11;
  TMenuItem *N_Startup;
  TMenuItem *N5;
  TMenuItem *N_Level_Easy;
  TMenuItem *N_Level_Middle;
  TMenuItem *N_Level_Expert;
  TMenuItem *N_Level_Professional;
  TMenuItem *N_Level_Customize;
  TMenuItem *N12;
  TMenuItem *N_Hero;
  TMenuItem *N_Quit;
  TMenuItem *N15;
  TMenuItem *N16;
  TMenuItem *N17;
  TMenuItem *N18;
  TMenuItem *H1;
  TMenuItem *N19;
  TMenuItem *N20;
  TMenuItem *N_Mark;
  TMenuItem *N_Color;
  TMenuItem *N_Sound;
  TMenuItem *N24;
  TMenuItem *N31;
  void __fastcall N11Click(TObject *Sender);
  void __fastcall Image_MiddleMouseDown(TObject *Sender,
          TMouseButton Button, TShiftState Shift, int X, int Y);
  void __fastcall Image_MiddleMouseUp(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y);
  void __fastcall Panel_TopMouseDown(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y);
  void __fastcall Panel_TopMouseMove(TObject *Sender, TShiftState Shift,
          int X, int Y);
  void __fastcall Panel_TopMouseUp(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y);
  void __fastcall Image_LeftMouseDown(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y);
  void __fastcall Image_LeftMouseMove(TObject *Sender, TShiftState Shift,
          int X, int Y);
  void __fastcall Image_LeftMouseUp(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y);
  void __fastcall Image_RightMouseDown(TObject *Sender,
          TMouseButton Button, TShiftState Shift, int X, int Y);
  void __fastcall Image_RightMouseMove(TObject *Sender, TShiftState Shift,
          int X, int Y);
  void __fastcall Image_RightMouseUp(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y);
  void __fastcall Image_MainMouseDown(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y);
  void __fastcall Image_MainMouseMove(TObject *Sender, TShiftState Shift,
          int X, int Y);
  void __fastcall Image_MainMouseUp(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y);
  void __fastcall N_StartupClick(TObject *Sender);
  void __fastcall FormCreate(TObject *Sender);
  void __fastcall N24Click(TObject *Sender);
  void __fastcall N_MarkClick(TObject *Sender);
  void __fastcall N_ColorClick(TObject *Sender);
  void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
  void __fastcall N_SoundClick(TObject *Sender);
  void __fastcall N_Level_EasyClick(TObject *Sender);
  void __fastcall N_Level_MiddleClick(TObject *Sender);
  void __fastcall N_Level_ExpertClick(TObject *Sender);
  void __fastcall N_Level_ProfessionalClick(TObject *Sender);
  void __fastcall N_Level_CustomizeClick(TObject *Sender);
  void __fastcall GameTimerTimer(TObject *Sender);
  void __fastcall N_HeroClick(TObject *Sender);
  void __fastcall N31Click(TObject *Sender);
  void __fastcall N_QuitClick(TObject *Sender);
  void __fastcall N18Click(TObject *Sender);
  void __fastcall N16Click(TObject *Sender);
  void __fastcall H1Click(TObject *Sender);
  void __fastcall N17Click(TObject *Sender);
/***************************************************************************/
private:	// User declarations
  void SetGameLevel(int level, int col=9, int row=9, int count=10);
  void SetControlSize(int col, int row);
  void DrawNumber(TImage *image, int num);
  void DrawBlock(int col,int row,int block);
  void DrawGame(int col, int row);
  void ChangeFace(int face);

  void GameLost();
  void GameWin();
  void ProcHeroName();

  void SearchBlankBlock(int col, int row);

  void LeftBtnDown(int col,int row);
  void RightBtnDown(int col,int row);
  void LeftAndRightBtnDown(int col,int row);

  void LeftBtnMoveOut(int col,int row);
  void LeftAndRightBtnMoveOut(int col,int row);

  void LeftBtnUp(int col,int row);
  void LeftAndRightBtnUp(int col,int row);
public:		// User declarations
  __fastcall TMainWin(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TMainWin *MainWin;
//---------------------------------------------------------------------------
#endif

⌨️ 快捷键说明

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