/* * TetrisGame.h * * Created on: May 5, 2013 * Author: chibi_000 */ #ifndef TETRISGAME_H_ #define TETRISGAME_H_ #include "../Domain/Array2.h" #include "PieceGenerator.h" class TetrisGame { private: Array2 grid; Piece current, next; PieceGenerator gen; int score, level; int cy, cx; // Position convert int xToPiece(int col_g); int xToGrid(int col_p); int yToPiece(int row_g); int yToGrid(int row_p); // Pieces void pickNextPiece(); void putPieceInGrid(); // Lines int markFullLines(); void removeFullLines(); // Collisions bool collides(int cx, int cy, const Piece& p); bool collidesDown(); bool collidesLeft(); bool collidesRight(); public: TetrisGame(int w=10, int h=20, const PieceGenerator& gen = PieceGenerator()); virtual ~TetrisGame(); // Gameplay bool isGameOver(); void tick(); void moveLeft(); void moveRight(); void moveDown(); void rotate(); // Getters int get(int x, int y); int getScore(); int getLevel(); int getTickTime(); Piece getNextPiece(); }; #endif /* TETRISGAME_H_ */