#include <windows.h>
#include <stdio.h>
#include <time.h>
#define CELL 20
#define ROWS 25
#define COLS 15
//升级所需分数值
#define SCORE_LEVEL_INC 80
#define ID_TIMER 1
/////////////////全局变量/////////////////////////////
HWND hwnd; //保存窗口句柄
int score=0; //分数
int level=0; //级数
int interval_unit=25; //随级数递增的时间间隔增量
int interval_base=300; //时间间隔基量
int old_interval; //保存当前的时间间隔,用于加速操作
int cur_left,cur_top; //记录方块当前的位置
int width_block,height_block; //方块的宽带和高度
bool isPause=false; //暂停标识
UINT timer_id=0; //保存计时器ID
static byte *block=NULL; //方块,方块为随机大小,采用动态分配内存方式,所以这里是指针变量
byte g_panel[ROWS][COLS]={0};
////////////////////////////////////////////////////
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
void DrawPanel(HDC hdc); //绘制表格
void RefreshPanel(HDC hdc); //刷新面板
void DoDownShift(HDC hdc); //下移
void DoLeftShift(HDC hdc); //左移
void DoRightShift(HDC hdc); //右移
void DoAccelerate(HDC hdc); //加速
void DoRedirection(HDC hdc); //改变方向
void ClearRow(HDC hdc); //消行
bool ExportBlock(); //输出方块,
//该函数会直接修改全局变量block,width_block,height_block,
//cur_left和cur_top
bool IsTouchBottom(HDC hdc); //判断是否到达底部
int main(){
HINSTANCE hInstance=GetModuleHandle(NULL);
TCHAR szAppName[]=TEXT("teris");
MSG msg;
WNDCLASS wc;
wc.style=CS_HREDRAW|CS_VREDRAW;
wc.lpfnWndProc=WndProc;
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.hInstance=hInstance;
wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wc.hCursor=LoadCursor(NULL,IDC_ARROW);
wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszMenuName=NULL;
wc.lpszClassName=szAppName;
if(!RegisterClass(&wc)){