Design Patterns
maze_game.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_MAZEGAME_MAZE_GAME_H_
7 #define CREATIONAL_MAZEGAME_MAZE_GAME_H_
8 
9 #include "../abstractfactory/maze_factory.h"
10 #include "../builder/maze_builder_interface.h"
11 
12 namespace creational
13 {
14 class MazeGame
15 {
16  public:
17  virtual ~MazeGame();
18 
19  static commons::Maze *CreateMaze();
23 
24  // factory methods
25  virtual commons::Maze *MakeMaze() const;
26  virtual commons::Room *MakeRoom(const int& room_number) const;
27  virtual commons::Wall *MakeWall() const;
28  virtual commons::Door *MakeDoor(const commons::Room& first_room, const commons::Room& second_room) const;
29 };
30 }
31 
32 #endif
33 
Definition: maze_builder_interface.h:15
Definition: bombed_maze_factory.cc:11
virtual ~MazeGame()
Definition: maze_game.cc:14
Definition: room.h:16
virtual commons::Room * MakeRoom(const int &room_number) const
Definition: maze_game.cc:102
virtual commons::Door * MakeDoor(const commons::Room &first_room, const commons::Room &second_room) const
Definition: maze_game.cc:112
virtual commons::Maze * MakeMaze() const
Definition: maze_game.cc:97
Definition: maze_game.h:14
static commons::Maze * CreateMaze()
Definition: maze_game.cc:16
Definition: wall.h:15
Definition: maze_factory_interface.h:17
commons::Maze * CreateSimpleMaze() const
Definition: maze_game.cc:73
virtual commons::Wall * MakeWall() const
Definition: maze_game.cc:107
Definition: door.h:16
Definition: maze.h:17