-
Notifications
You must be signed in to change notification settings - Fork 0
/
gameS8.h
70 lines (53 loc) · 1.7 KB
/
gameS8.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#ifndef GAMES8_H
#define GAMES8_H
#include <QWidget>
#include <QKeyEvent>
#include "implementation.h"
#include "timethread.h"
namespace Ui { class gameS8; }
class gameS8 : public QWidget
{
Q_OBJECT
public:
gameS8(QWidget* parent = nullptr);
~gameS8();
void setAccount(int); //初始化界面
void continueGame(int, Game); //继续之前的游戏
void keyPressEvent(QKeyEvent*);
void closeEvent(QCloseEvent*);
private slots:
void on_pBtnRetry_clicked(); //重新开始
void on_pBtnRetry2_clicked(); //重新开始(游戏失败后)
void on_pBtnPause_clicked(); //暂停
void on_pBtnEnd_clicked(); //结束游戏
//技能
void on_pBtnLast_clicked(); //退回上一步
void on_pBtnHammer_clicked(); //敲除一个方块
void hammer(); //敲除方块
//用户主界面、游戏界面
void on_pBtnHome_clicked(); //从游戏界面返回用户主界面
void on_pBtnHome2_clicked(); //从游戏界面返回用户主界面(游戏失败后)
signals:
void returnHome(int, int); //信号:从游戏界面返回用户主界面
private:
Ui::gameS8* ui;
const int N;
QPushButton* pbtn[8][8];
int account; //账号
int attempts; //总步数
ll lstscore, score; //总得分
Checkerboard cb; //棋盘
bool dead; //是否死亡
list<pair<vector<vector<ll>>, ll>> step; //记录每一步的操作
int lastNum; //还剩的退回上一步的次数
int hammerNum; //还剩的敲除一个方块的次数
int reviveNum; //还剩的复活次数
Countup time;
bool gaming;
TimeThread tt;
void reset();
void update();
void die(); //死亡结算
void updateTime();
};
#endif // GAMES8_H