diff options
Diffstat (limited to 'examples/tetrix/gtetrix.h')
-rw-r--r-- | examples/tetrix/gtetrix.h | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/examples/tetrix/gtetrix.h b/examples/tetrix/gtetrix.h new file mode 100644 index 000000000..170def596 --- /dev/null +++ b/examples/tetrix/gtetrix.h @@ -0,0 +1,92 @@ +/**************************************************************************** +** +** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved. +** +** This file is part of an example program for TQt. This example +** program may be used, distributed and modified without limitation. +** +*****************************************************************************/ + +#ifndef GTETRIX_H +#define GTETRIX_H + +#include "tpiece.h" + + +class GenericTetrix +{ +public: + GenericTetrix(int boardWidth = 10,int boardHeight = 22); + virtual ~GenericTetrix(); + + void clearBoard(int fillRandomLines = 0); + void revealNextPiece(int revealIt); + void updateBoard(int x1,int y1,int x2,int y2,int dontUpdateBlanks = 0); + void updateNext(){if (showNext) showNextPiece();} + void hideBoard(); + void showBoard(); + void fillRandom(int line); + + void moveLeft(int steps = 1); + void moveRight(int steps = 1); + void rotateLeft(); + void rotateRight(); + void dropDown(); + void oneLineDown(); + void newPiece(); + void removePiece(); + + int noOfClearLines() {return nClearLines;} + int getLinesRemoved() {return nLinesRemoved;} + int getPiecesDropped() {return nPiecesDropped;} + int getScore() {return score;} + int getLevel() {return level;} + int boardHeight() {return height;} + int boardWidth() {return width;} + + virtual void drawSquare(int x,int y,int value) = 0; + virtual void gameOver() = 0; + + virtual void startGame(int gameType = 0,int fillRandomLines = 0); + virtual void drawNextSquare(int x,int y,int value); + virtual void pieceDropped(int dropHeight); + virtual void updateRemoved(int noOfLines); + virtual void updateScore(int newScore); + virtual void updateLevel(int newLevel); + +private: + void draw(int x, int y, int value){drawSquare(x,height - y,value);} + void removeFullLines(); + void removeLine(int line); + void showPiece(); + void erasePiece(); + void internalPieceDropped(int dropHeight); + void gluePiece(); + void showNextPiece(int erase = 0); + void eraseNextPiece(){showNextPiece(1);}; + int canPosition(TetrixPiece &piece); // Returns a boolean value. + int canMoveTo(int xPosition, int line); // Returns a boolean value. + void moveTo(int xPosition,int line); + void position(TetrixPiece &piece); + void optimizedMove(int newPos, int newLine,TetrixPiece &newPiece); + + int &board(int x,int y){return boardPtr[width*y + x];} + + TetrixPiece currentPiece; + TetrixPiece nextPiece; + int currentLine; + int currentPos; + int showNext; // Boolean variable. + int nLinesRemoved; + int nPiecesDropped; + int score; + int level; + int gameID; + int nClearLines; + int width; + int height; + int *boardPtr; +}; + + +#endif |