-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathboardui.h
More file actions
54 lines (47 loc) · 1.26 KB
/
boardui.h
File metadata and controls
54 lines (47 loc) · 1.26 KB
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
#ifndef BOARDUI_H
#define BOARDUI_H
#include "chessboard.h"
#include "aimultithread.h"
#include <QFrame>
#include <QWidget>
#include <QPaintEvent>
#include <QMouseEvent>
#include <optional>
#include <QtSvg/QtSvg>
#include <QtConcurrent/QtConcurrent>
class BoardUI : public QFrame
{
Q_OBJECT
public:
BoardUI(QWidget * parent);
~BoardUI();
void paintEvent(QPaintEvent * e);
void mouseMoveEvent(QMouseEvent * e);
void mousePressEvent(QMouseEvent * e);
void mouseReleaseEvent(QMouseEvent * e);
void doAIMove(Team t);
void reset_board();
const float MARGIN = 0.1;
private:
AIMultiThread * ai_threads;
Team currentTurn;
std::optional<QPoint> mouseToBoard(QPoint p);
void draw_sprite(QPainter * painter, QRectF location, Piece piece);
QPoint mouse_pos;
QPoint held_piece_origin;
std::optional<Piece> held_piece;
ChessBoard board;
QSvgRenderer * sprite_sheet;
const QPoint sprite_size = QPoint(45,45);
QThreadPool think_pool;
signals:
void move_made(Team t);
void think_updated(float percent);
void think_finished();
void evaluation_updated(int value);
public slots:
void on_move_made(Team t);
void on_think_updated(float percent);
void on_think_finished();
};
#endif // BOARDUI_H