📄 square.h
字号:
#if !defined(AFX_SQUARE1_H__61CFFC00_38A0_42DF_9A97_1B0D2C84DF28__INCLUDED_)
#define AFX_SQUARE1_H__61CFFC00_38A0_42DF_9A97_1B0D2C84DF28__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Square.h : header file
//
#ifndef HONG
#define HONG
#define W_NUMBER 12 //一横排方块的个数
#define H_NUMBER 20 //一竖排方块的个数
#define SIZE 20 //方块的大小
#define BkColor RGB(200,100,200)
#endif
#include "MyRect.h"
/////////////////////////////////////////////////////////////////////////////
// Square window
class Square
{
public:
CRect Element[5];//存储四个方块,从Element[1]开始
int x; //标识四个方块的位置
int y; //
int type; //四个方块所组成的形状
CRect RgRect; //方块所在的范围
int Matrix[W_NUMBER+1][H_NUMBER+1];
int TurnNumber;//翻转的次数
int m_Score;//分数
int Grade;//等级
CBitmap bitmap;//载入 位图用,背景图片
CBitmap bitmap1[10];//位图数组
int m_picture ;//记录载入哪一幅图片
CBrush MyBrush ;//画刷
public:
void Rand(); //产生一个在0到6之间的随机数,并用这个数为type赋值
Square();//构造函数
void MakeEle();//产生x和y四个方块的大小和位置
void Make();//随机产生方块
//移动,并显示
void Move(int a,int b,CDC *pDC,int judge = 0);
//移动,但不显示
void Move(int a,int b);
//判断能否移动(m_x,m_y),返回值为true时,可以移动,为假时不能移动
bool CheckRange(int m_x,int m_y);
bool CheckMatrix(int m_x,int m_y);
void ChangeMatrix();//改变Matrix矩阵中的值
//刷新的时候画出所有存在的方块
//当Style = 1 时用背景色来刷新
void PaintMatrix(CDC *pDC,int Style = 0);
void Turn(CDC *pDC);//翻转函数
void MoveElement(int ElementNumber,int x,int y);//移动四个方块中的一个
void Remove(CDC *pDC);//消去满行的方块
//仅仅根据数组来转一下,如果value == -1,反转
void OnlyTurn(int move[8],int value = 0);
void RightTurn(int move[8]);//正确的转一下
void ShowScore(CDC *pDC);//显示分数
void UpGrade(int *Elapse);//用于提升等级
};
/////////////////////////////////////////////////////////////////////////////
#endif // !defined(AFX_SQUARE1_H__61CFFC00_38A0_42DF_9A97_1B0D2C84DF28__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -