📄 tetrisdata.h
字号:
//---------------------------------------------------------------------------
#ifndef TetrisDataH
#define TetrisDataH
//---------------------------------------------------------------------------
#include <vcl.h>
//---------------------------------------------------------------------------
class TBaseTetris
{
public:
static const MapXsize = 9;
static const MapYsize = 20;
#pragma pack(push,1)
typedef unsigned char TTetrisUnit[4][4];
typedef struct
{
TTetrisUnit un[4];
int a,x,y,r;
} TTetrisUnits;
typedef struct
{
unsigned char TetrisBuffer[MapYsize][MapXsize];
} TTetrisBuffer;
#pragma pack(pop)
enum TMoveDir
{
btmLeft = 1,
btmRight = 2,
btmDown = 3,
btmCW = 4,
btmCCW = 5,
};
enum TBlockAttr
{
tbaBomb = 0x0001,
};
__property bool Busy = { read = fGetBusy };
__property bool Started = { read = _bStarted };
__property bool GameOver = { read = _bGameOver };
__property int Score = { read = _iScore };
__property int Lines = { read = _iLines };
__property TTetrisBuffer *DisplayBuffer = { read = fGetDispBuf };
__property TTetrisBuffer *TetrisBuffer = { read = fGetTetirsBuf };
__property TTetrisUnits *IncomingUnits = { read = fGetIncmUnit };
void NewGame(void);
void Move(int iMdir);
void AddLines(int Ln);
void AddMonsters(int Mn) { _iMonsters+=Mn; }
void AddBombs(int Bn) { _iBombs+=Bn; }
TBaseTetris();
~TBaseTetris();
private:
static const NumUnits = 7;
static const NumMonsters = 8;
static const TTetrisUnits BaseUnits[NumUnits+NumMonsters+1];
static bool RandomInitialized;
int Ux0, Uy0;
TTetrisUnits CurrUnit, IncmUnit;
TTetrisBuffer DispBuffer, BlockBuffer;
TTetrisBuffer *fGetDispBuf(void) { return &DispBuffer; }
TTetrisBuffer *fGetTetirsBuf(void) { return &BlockBuffer; }
TTetrisUnits *fGetIncmUnit(void) { return &IncmUnit; }
bool _bStarted, _bGameOver;
int _iRemoving, _iScore, _iLines, _iMonsters, _iBombs;
bool fGetBusy(void) { return _iRemoving!=0; }
int CheckUnit(int x, int y, int r);
int TryToRemove(void);
void GenNewUnit(void);
void DispTetris(void);
void AddScore(int iRmv);
void CheckBomb(void);
};
//---------------------------------------------------------------------------
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -