diff options
Diffstat (limited to 'tdefifteen/src/gameboard.h')
-rw-r--r-- | tdefifteen/src/gameboard.h | 68 |
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..55b25e29 --- /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 +{ + Q_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__ */ |