#pragma once #include #include #include #include "Tetromino.hpp" class GameBoard { private: void spawnNewTetromino( ); bool checkCollision(const Tetromino& tetromino) const; void lockTetromino( ); void clearLines( ); vector> lockedTetrominos; vector> lockedColors; unique_ptr currentTetromino; const int width = 10; const int height = 20; bool collision; int score; int level; public: GameBoard( ); void update( ); bool tryMoveCurrentTetromino(int dx, int dy); void tryRotateCurrentTetromino( ); bool isValidPosition(const vector>& shape, int x, int y) const; void moveToBottom( ); void reset( ); const bool isCollision( ) const; const int getScore( ) const; const int getLevel( ) const; const vector>& getLockedTetrominos( ) const; const vector>& getLockedColors( ) const; const Tetromino& getCurrentTetromino( ) const; };