Design Patterns
counting_maze_builder.h
Go to the documentation of this file.
1 // Based on "Design Patterns: Elements of Reusable Object-Oriented Software"
2 // book by Erich Gamma, John Vlissides, Ralph Johnson, and Richard Helm
3 //
4 // Created by Bartosz Rachwal. The National Institute of Advanced Industrial Science and Technology, Japan.
5 
6 #ifndef CREATIONAL_BUILDER_COUNTING_MAZE_BUILDER_H_
7 #define CREATIONAL_BUILDER_COUNTING_MAZE_BUILDER_H_
8 
10 
11 namespace creational
12 {
13 namespace builder
14 {
16 {
17  public:
19  ~CountingMazeBuilder() override;
20 
21  virtual void BuildMaze() override;
22  virtual void BuildRoom(const int& room_number) override;
23  virtual void BuildDoor(const int& first_room_number, const int& second_room_number) override;
24 
25  virtual commons::Maze *GetMaze() override;
26 
27  void GetCounts(int* rooms, int* doors) const;
28 
29  private:
30  virtual commons::Direction CommonWall(const commons::Room& first_room, const commons::Room& second_room) const;
31 
32  commons::Maze* current_maze_;
33  int doors_;
34  int rooms_;
35 };
36 }
37 }
38 
39 #endif
40 
Direction
Definition: direction.h:13
CountingMazeBuilder()
Definition: counting_maze_builder.cc:15
Definition: maze_builder_interface.h:15
~CountingMazeBuilder() override
Definition: counting_maze_builder.cc:17
Definition: bombed_maze_factory.cc:11
Definition: counting_maze_builder.h:15
Definition: room.h:16
virtual void BuildDoor(const int &first_room_number, const int &second_room_number) override
Definition: counting_maze_builder.cc:39
virtual void BuildRoom(const int &room_number) override
Definition: counting_maze_builder.cc:27
virtual commons::Maze * GetMaze() override
Definition: counting_maze_builder.cc:51
Definition: maze.h:17
virtual void BuildMaze() override
Definition: counting_maze_builder.cc:22
void GetCounts(int *rooms, int *doors) const
Definition: counting_maze_builder.cc:56