#ifndef LEVEL_H #define LEVEL_H #include using coordinate = unsigned int; constexpr coordinate side = 32; using Row = std::array; using Map = std::array; /// Abstraction over 2D array to quickly get access to unchangable level cells class Level { private: Map map; public: Level(); /// Place a bridge cell void placeBridge(coordinate x, coordinate y); /// Get the 2D array of level map Map& mapArray() const; /// Is the following cell has requested type bool isCellOfType(coordinate x, coordinate y, char type) const; /// Replace a charge cell with a ground cell void removeCharge(coordinate x, coordinate y); }; #endif // LEVEL_H