Implement a group of C++ classes that allow the generation of custom maps. This must allow for the creation of custom maps of variable size to be determined prior to the creation of the map. As stated in the project description, it is advised (for simplicity) that you design the map as a grid, where each grid cell is either (1) an empty cell where a character can move or (2) a wall where a character cannot move, or (3) an occupied cell containing a character, opponent, chest, a door, or whatever else your game rules might include. The class should be designed to allow the creation of a blank map given breadth and width, and provide member functions to set any cell to anything it might eventually contain as stated above. Your class should have a method to verify the validity of a map, which verifies that there is at least one clear path between the mandatory begin and end cell.