#include #include #include #include enum class TileType{ EMPTY, WALL, NOMAL_BEAN, ENERGY_BEAN, PACMAN, GHOST }; struct Tile{ TileType type; std::unordered_map tileTypeToPlaceholder{ {TileType::EMPTY, " "}, {TileType::WALL, "#"}, {TileType::NOMAL_BEAN, "."}, {TileType::ENERGY_BEAN, "o"}, {TileType::PACMAN, "P"}, {TileType::GHOST, "G"} }; Tile() = default; Tile(TileType t) : type(t) {} }; class MapGrid{ public: MapGrid() = default; MapGrid(const std::string& mapFilePath); void loadMap(const std::string& mapFilePath);; std::unique_ptr> getSize() const; bool isValidPosition(int x, int y) const; void setTile(int x, int y, TileType type, const std::string& placeholder); void renderMap() const; void move(); // 应该是 W A S D 移动 private: std::vector> grid; std::unique_ptr> size; };