Design Patterns
enchanted_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_FACTORYMETHOD_ENCHANTED_MAZE_GAME_H_
7 #define CREATIONAL_FACTORYMETHOD_ENCHANTED_MAZE_GAME_H_
8 
9 #include "../mazegame/maze_game.h"
10 #include "../mazeparts/spell.h"
11 
12 namespace creational
13 {
14 namespace factorymethod
15 {
17 {
18  public:
20 
21  virtual commons::Room *MakeRoom(const int& room_number) const override;
22  virtual commons::Door *MakeDoor(const commons::Room& first_room, const commons::Room& second_room) const override;
23 
24  protected:
25  static commons::Spell *WeaveSpell();
26 };
27 }
28 }
29 
30 #endif
31 
EnchantedMazeGame()
Definition: enchanted_maze_game.cc:15
static commons::Spell * WeaveSpell()
Definition: enchanted_maze_game.cc:28
virtual commons::Room * MakeRoom(const int &room_number) const override
Definition: enchanted_maze_game.cc:17
Definition: spell.h:15
Definition: bombed_maze_factory.cc:11
Definition: room.h:16
Definition: maze_game.h:14
Definition: door.h:16
virtual commons::Door * MakeDoor(const commons::Room &first_room, const commons::Room &second_room) const override
Definition: enchanted_maze_game.cc:23
Definition: enchanted_maze_game.h:16