diff options
author | gregory guy <gregory-tde@laposte.net> | 2020-11-25 15:16:40 +0100 |
---|---|---|
committer | gregory guy <gregory-tde@laposte.net> | 2020-12-01 12:21:04 +0100 |
commit | e33e8edb80936f8dd04729d70c0c991612340d5e (patch) | |
tree | e0b1b8d6098491db4d7d642bed7d5ef5747952d2 /tdefifteen/src/gameboard.h | |
parent | 4fd2e55a49048dcecdf7ebd7ce7e78b822c06156 (diff) | |
download | tdegames-e33e8edb80936f8dd04729d70c0c991612340d5e.tar.gz tdegames-e33e8edb80936f8dd04729d70c0c991612340d5e.zip |
Turn into a TDE application.
The game is renamed TDEFifteen (original name: q15).
Add icons (Public Domaine, https://commons.wikimedia.org/wiki/File:15-puzzle.svg).
Signed-off-by: gregory guy <gregory-tde@laposte.net>
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__ */ |