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

📄 terris.h

📁 俄罗斯方块vc++编码
💻 H
字号:

//常量定义

//菜单常量
# define IDM_START      100							//开始	
# define IDM_PAUSE      101							//暂停
# define IDM_EXIT       102							//退出	
		
# define IDM_EASY            200					//容易
# define IDM_MEDIUM          201					//普通
# define IDM_DIFFICULT       202					//困难

# define IDM_ABOUT           300					//关于


#define IDC_EMAIL                       2000		//Email
#define IDC_HOMEPAGE                    2001		//主页

#define IDC_STATIC                      -1

//数据常量
# define BLOCKSIZE           15						//方块大小

# define ROWS                24						//行
# define COLS                10						//列

# define OriginXPos          8						//初始X坐标
# define OriginYPos          30						//初始Y坐标

# define TIMERID             1						//时间间隔编号
# define EasyInterval        300					//容易难度间隔时间
# define MediumInterval      200					//普通难度间隔时间
# define DifficultInterval   100					//困难难度间隔时间




//保存方块信息的结构体
typedef struct{
	BOOL Flag_Is_Moveable;							//是否能够移动的标志				
    BOOL Flag_Is_Filled;							//是否填满整行的标志
	int  BlockStyle;								//方块的类型
}BLOCK;

//函数原型说明

void DrawBackground(HDC);
void DrawBlock(HDC, int, int, int);
void DrawGrayBlock(HDC, int, int);
void EraseBlock(HDC, int, int);

void InitializeBlock(BLOCK BlockArray[ROWS][COLS]);

BOOL GameOver(BLOCK BlockArray[ROWS][COLS]);
void GenerateNewBlock(HWND,BLOCK BlockArray[ROWS][COLS]);

BOOL NeedGenerateNewBlock(BLOCK Block[ROWS][COLS]);
void KillFullLine(HWND hwnd,BLOCK BlockArray[ROWS][COLS]);

BOOL CanBlockMoveDown(BLOCK Block[ROWS][COLS]);
BOOL CanBlockMoveRight(BLOCK BlockArray[ROWS][COLS]);
BOOL CanBlockMoveLeft(BLOCK BlockArray[ROWS][COLS]);

void MoveBlockFromSrcToDes (BLOCK BlockArray[ROWS][COLS],int SrcRow, int SrcCol, int DesRow, int DesCol);
void MoveBlockFromPreviewToGameArea(HWND hwnd, BLOCK BlockArray[ROWS][COLS]);
void MoveBlockDown(HWND hwnd,BLOCK Block[ROWS][COLS]);
void MoveBlockRight(HWND hwnd, BLOCK BlockArray[ROWS][COLS]);
void MoveBlockLeft(HWND hwnd,BLOCK BlockArray[ROWS][COLS]);
void Moveable2Stable(BLOCK Block[ROWS][COLS]);

void RefreshWindow(HWND hWnd,BLOCK BlockArray[ROWS][COLS]);


int JudgeBlockStyle(BLOCK BlockArray[ROWS][COLS]);

void ChangeBlockStyleToGray(BLOCK BlockArray[ROWS][COLS]);

void RotateStyleZero(HWND,BLOCK BlockArray[ROWS][COLS]);
void RotateStyleOne(HWND,BLOCK  BlockArray[ROWS][COLS]);
void RotateStyleTwo(HWND hwnd,BLOCK BlockArray[ROWS][COLS]);
void RotateStyleThree(HWND hwnd,BLOCK BlockArray[ROWS][COLS]);
void RotateStyleFour(HWND hwnd,BLOCK BlockArray[ROWS][COLS]);
void RotateStyleSix(HWND hwnd,BLOCK BlockArray[ROWS][COLS]);
//第五种类型的积木不存在变形.它是一个正方形.所以没有相应的变形函数
/*
   @ @
   @ @  
       */
BOOL InitClass(HINSTANCE);
BOOL InitWindow(HINSTANCE);

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
BOOL CALLBACK AboutDialogProc (HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
LRESULT CALLBACK HyperLinkProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam);

⌨️ 快捷键说明

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