summaryrefslogtreecommitdiffstats
path: root/tdefifteen/src/gameboard.h
diff options
context:
space:
mode:
Diffstat (limited to 'tdefifteen/src/gameboard.h')
-rw-r--r--tdefifteen/src/gameboard.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/tdefifteen/src/gameboard.h b/tdefifteen/src/gameboard.h
new file mode 100644
index 00000000..5b00131c
--- /dev/null
+++ b/tdefifteen/src/gameboard.h
@@ -0,0 +1,68 @@
+// Author: Denis Kozadaev - (c) 2017-2020
+
+
+#ifndef __GAME_BOARD_H__
+#define __GAME_BOARD_H__
+
+#include <stdlib.h>
+
+#include <tqwidget.h>
+#include <tqlabel.h>
+#include <tqpixmap.h>
+#include <tqtimer.h>
+
+
+class BoardItem:public TQLabel
+{
+public:
+
+ BoardItem(int, TQWidget *parent = NULL, const char *name = NULL);
+ ~BoardItem();
+
+ int item()const{return (num);}
+
+private:
+ int num;
+
+protected:
+ void paintEvent(TQPaintEvent *);
+};
+
+//------------------------------------------------------------------------------
+
+class GameBoard:public TQWidget
+{
+ TQ_OBJECT
+public:
+
+ GameBoard(TQWidget *parent = NULL, const char *name = NULL);
+ ~GameBoard();
+
+ void newGame();
+ void loadImage();
+
+private:
+ int n, nt, xt, yt, dx, dy;
+ BoardItem *map[16];
+ TQTimer *tmr;
+ TQPixmap origin;
+
+ void initMap();
+ void startMoving(int, int);
+ void checkEndGame();
+ void newTask();
+
+ int index(int, int);
+ int mayMove(int);
+ int step(int, int);
+ int sign(int);
+
+protected:
+ void resizeEvent(TQResizeEvent *);
+ void mousePressEvent(TQMouseEvent *);
+
+private slots:
+ void moveItem();
+};
+
+#endif /* __GAME_BOARD_H__ */