diff options
Diffstat (limited to 'q15/src/gameboard.h')
-rw-r--r-- | q15/src/gameboard.h | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/q15/src/gameboard.h b/q15/src/gameboard.h new file mode 100644 index 00000000..443522ef --- /dev/null +++ b/q15/src/gameboard.h @@ -0,0 +1,92 @@ +/* + * $Id: gameboard.h,v 0.1 2005/08/14 12:10:05 denis Exp $ + * + * Author: Denis Kozadaev (denis@tambov.ru) + * Description: + * + * See also: style(9) + * + * Hacked by: + */ + +#ifndef __GAME_BOARD_H__ +#define __GAME_BOARD_H__ + +#include <stdlib.h> + +#if QT_VERSION >= 0x040000 +#include <QtGui/QWidget> +#include <QtGui/QLabel> +#include <QtGui/QResizeEvent> +#include <QtGui/QPaintEvent> +#include <QtGui/QMouseEvent> +#include <QtGui/QPixmap> +#include <QtCore/QTimer> +#else +#include <ntqwidget.h> +#include <ntqlabel.h> +#include <ntqpixmap.h> +#include <ntqtimer.h> +#endif + + +class BoardItem:public TQLabel +{ +public: +#if QT_VERSION >= 0x040000 + BoardItem(int, QWidget *parent = NULL); +#else + BoardItem(int, TQWidget *parent = NULL, const char *name = NULL); +#endif + ~BoardItem(); + + int item()const{return (num);} + +private: + int num; + +protected: + void paintEvent(TQPaintEvent *); +}; + +//------------------------------------------------------------------------------ + +class GameBoard:public TQWidget +{ + Q_OBJECT +public: +#if QT_VERSION >= 0x040000 + GameBoard(QWidget *parent = NULL); +#else + GameBoard(TQWidget *parent = NULL, const char *name = NULL); +#endif + ~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__ */ |