source: vendor/trolltech/current/examples/tetrix/gtetrix.h

Last change on this file was 160, checked in by dmik, 19 years ago

Imported table and iconview modules and a bunch of dependent examples from the official release 3.3.1 from Trolltech.

  • Property svn:keywords set to Id
File size: 3.1 KB
Line 
1/****************************************************************************
2** $Id: gtetrix.h 160 2006-12-11 20:15:57Z dmik $
3**
4** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.
5**
6** This file is part of an example program for Qt. This example
7** program may be used, distributed and modified without limitation.
8**
9*****************************************************************************/
10
11#ifndef GTETRIX_H
12#define GTETRIX_H
13
14#include "tpiece.h"
15
16
17class GenericTetrix
18{
19public:
20 GenericTetrix(int boardWidth = 10,int boardHeight = 22);
21 virtual ~GenericTetrix();
22
23 void clearBoard(int fillRandomLines = 0);
24 void revealNextPiece(int revealIt);
25 void updateBoard(int x1,int y1,int x2,int y2,int dontUpdateBlanks = 0);
26 void updateNext(){if (showNext) showNextPiece();}
27 void hideBoard();
28 void showBoard();
29 void fillRandom(int line);
30
31 void moveLeft(int steps = 1);
32 void moveRight(int steps = 1);
33 void rotateLeft();
34 void rotateRight();
35 void dropDown();
36 void oneLineDown();
37 void newPiece();
38 void removePiece();
39
40 int noOfClearLines() {return nClearLines;}
41 int getLinesRemoved() {return nLinesRemoved;}
42 int getPiecesDropped() {return nPiecesDropped;}
43 int getScore() {return score;}
44 int getLevel() {return level;}
45 int boardHeight() {return height;}
46 int boardWidth() {return width;}
47
48 virtual void drawSquare(int x,int y,int value) = 0;
49 virtual void gameOver() = 0;
50
51 virtual void startGame(int gameType = 0,int fillRandomLines = 0);
52 virtual void drawNextSquare(int x,int y,int value);
53 virtual void pieceDropped(int dropHeight);
54 virtual void updateRemoved(int noOfLines);
55 virtual void updateScore(int newScore);
56 virtual void updateLevel(int newLevel);
57
58private:
59 void draw(int x, int y, int value){drawSquare(x,height - y,value);}
60 void removeFullLines();
61 void removeLine(int line);
62 void showPiece();
63 void erasePiece();
64 void internalPieceDropped(int dropHeight);
65 void gluePiece();
66 void showNextPiece(int erase = 0);
67 void eraseNextPiece(){showNextPiece(1);};
68 int canPosition(TetrixPiece &piece); // Returns a boolean value.
69 int canMoveTo(int xPosition, int line); // Returns a boolean value.
70 void moveTo(int xPosition,int line);
71 void position(TetrixPiece &piece);
72 void optimizedMove(int newPos, int newLine,TetrixPiece &newPiece);
73
74 int &board(int x,int y){return boardPtr[width*y + x];}
75
76 TetrixPiece currentPiece;
77 TetrixPiece nextPiece;
78 int currentLine;
79 int currentPos;
80 int showNext; // Boolean variable.
81 int nLinesRemoved;
82 int nPiecesDropped;
83 int score;
84 int level;
85 int gameID;
86 int nClearLines;
87 int width;
88 int height;
89 int *boardPtr;
90};
91
92
93#endif
Note: See TracBrowser for help on using the repository browser.