/* * Copyright (c) 2005 by SilverSoft.Net * All rights reserved * * $Id: gameboard.h,v 0.1 2005/08/14 12:10:05 denis Exp $ * * Author: Denis Kozadaev (denis@silversoft.net) * Description: * * See also: style(9) * * Hacked by: */ #ifndef __GAME_BOARD_H__ #define __GAME_BOARD_H__ #include #if QT_VERSION >= 0x040000 #include #include #include #include #include #include #include #else #include #include #include #include #endif class BoardItem:public QLabel { public: #if QT_VERSION >= 0x040000 BoardItem(int, QWidget *parent = NULL); #else BoardItem(int, QWidget *parent = NULL, const char *name = NULL); #endif ~BoardItem(); int item()const{return (num);} private: int num; protected: void paintEvent(QPaintEvent *); }; //------------------------------------------------------------------------------ class GameBoard:public QWidget { Q_OBJECT public: #if QT_VERSION >= 0x040000 GameBoard(QWidget *parent = NULL); #else GameBoard(QWidget *parent = NULL, const char *name = NULL); #endif ~GameBoard(); void newGame(); void loadImage(); private: int n, nt, xt, yt, dx, dy; BoardItem *map[16]; QTimer *tmr; QPixmap 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(QResizeEvent *); void mousePressEvent(QMouseEvent *); private slots: void moveItem(); }; #endif /* __GAME_BOARD_H__ */