📄 canvas.h
字号:
#ifndef CANVAS_H
#define CANVAS_H
#include <QWidget>
#include <QPen>
#include <QPixmap>
#include <QBrush>
class Canvas : public QWidget
{
Q_OBJECT
public:
Canvas(QWidget *parent = 0 );
virtual ~Canvas();
void loadLevel ();/**游戏开始*/
const void initializeGame () ;/**初始化游戏数据*/
const void setDegree ( int d ) ;
public:
static int intDegree ;//难度
static int intDx; //难度系数
public slots:
void setPen(const QPen &pen);
void setBrush(const QBrush &brush);
protected:
void paintEvent(QPaintEvent *event);//画图事件
// void mouseMoveEvent(QMouseEvent *event);//鼠标事件
void mouseDoubleClickEvent ( QMouseEvent * event );//鼠标双击
void mousePressEvent ( QMouseEvent * event ); //鼠标单击
private:
QPen pen;
QBrush brush;
QPixmap pixmap;
const void initializeBoard ();/**初始化棋盘,将所有棋盘格清空*/
const int makeBall ();//随机返回1种颜色的代码(1~7)
const int makeCoor ();//随机返回一个整数,这个整数=没有球的棋盘格的x坐标×9+y坐标
const void setDose ( int c , int x , int y );//设置一个棋盘格内小球的颜色
void setCurBrush( int colour );//设定笔刷
const int getBallColour ( int x , int y );//返回指定的棋盘格内小球颜色
const void setReward ( int i , int j );
void caReward ( int x , int y );
const void down ( int x , int y );
const void up ( int x , int y );
const void right ( int x , int y );
const void left ( int x , int y );
const void down_left ( int x , int y );
const void up_right ( int x , int y );
const void down_right ( int x , int y );
const void up_left ( int x , int y ) ;
void setInitTest();
bool TestMain(int Ox,int Oy,int Tx,int Ty);
void Test( );
void Back( );
int ActOK( );
const int getEmpty ();
private:
int intAfPos_x , intAfPos_y , intAfPos_c ;//按下选择键后光标位置的x坐标、y坐标、小球颜色
int intPrPos_x , intPrPos_y , intPrPos_c ;//当前光标位置的x坐标、y坐标、小球颜色
int intSuc ;//连续消球的次数
int intChoice ;//选中小球的颜色
bool isOver ;//游戏是否结束
bool isChoice ;//是否已经选中小球isChoice
int intReward ; //获得的奖分总数
int intReDis ; //剩余的奖励消球次数
int intAlDis ; //使用的奖励消球次数
int intEmpty ; //棋盘上没有小球的空地个数
int intNum ; //小球相连的个数
int intSugges [ 3 ] ;//显示在屏幕最左上端的3个提示球的颜色
int intBallColour [ 9 ][ 9 ] ; //代表9×9的棋盘
/* Test Data */
bool TestPassOver;
int MaxAct; //移动方向总数
char Table[9][9]; //是否已到过
int Level; //第几步
int LevelComplete; //这一步的搜索是否完成
int AllComplete; //全部搜索是否完成
char Act[1000]; //每一步的移动方向,搜索1000步
int x,y; //现在的x和y坐标
int TargetX,TargetY; //目标x和y坐标
QString Str_Pos;
int GameTimer;
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -