-
Notifications
You must be signed in to change notification settings - Fork 1
/
gameplaywidget.cpp
92 lines (79 loc) · 2.23 KB
/
gameplaywidget.cpp
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include "gameplaywidget.h"
#include "ui_gameplaywidget.h"
#include "QPushButton"
#include "QString"
#include <QSizePolicy>
#include <QCursor>
#include <QTimer>
#include "barleybreak.h"
#include "gametileswidget.h"
GamePlayWidget::GamePlayWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::GamePlayWidget),
timer(new QTimer(this))
{
ui->setupUi(this);
timer->setInterval(timerspeed);
timer->start();
connect(timer, SIGNAL(timeout()), this, SLOT(updateTimer()));
connect(ui->pauseGameBtn, SIGNAL(clicked()), this, SLOT(triggerPauseAndPlayGame()));
connect(ui->restartGameBtn, SIGNAL(clicked()), this, SLOT(restartTimer()));
connect(ui->restartGameBtn, SIGNAL(clicked()), ui->gameTiles, SLOT(createLogicAndBoard()));
connect(ui->restartGameBtn, SIGNAL(clicked()), this, SLOT(play()));
connect(ui->gameTiles, SIGNAL(iAmWinner()), this, SLOT(saveTime()));
}
GamePlayWidget::~GamePlayWidget()
{
delete ui;
}
void GamePlayWidget::updateTimer()
{
setTime(milisecondsOfGame+timerspeed);
}
void GamePlayWidget::restartTimer()
{
timer->stop();
timer->start();
milisecondsOfGame = -timerspeed;
}
void GamePlayWidget::triggerPauseAndPlayGame()
{
if(ui->gameTiles->isHidden()){
play();
} else {
pause();
}
}
void GamePlayWidget::restartGame()
{
ui->gameTiles->createLogicAndBoard();
}
void GamePlayWidget::play()
{
ui->gameTiles->show();
timer->start();
ui->pauseGameBtn->setText(QString("Пауза"));
}
void GamePlayWidget::pause()
{
timer->stop();
ui->gameTiles->hide();
ui->pauseGameBtn->setText(QString("Продолжить"));
}
void GamePlayWidget::saveTime()
{
GlobalSettings* settings = GlobalSettings::Instance();
settings->setTimePlay(ui->timerGame->text());
}
void GamePlayWidget::setTime(int second)
{
milisecondsOfGame = second;
int minuts = (milisecondsOfGame / 1000) / 60;
int seconds = (milisecondsOfGame / 1000) % 60;
QString string("");
string.append(QString::number(minuts));
string.append("м:");
string.append(QString::number(seconds));
string.append("с");
ui->timerGame->setText(string);
}