diff options
Diffstat (limited to 'Pathfinder.h')
-rw-r--r-- | Pathfinder.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/Pathfinder.h b/Pathfinder.h new file mode 100644 index 0000000..9c362dc --- /dev/null +++ b/Pathfinder.h @@ -0,0 +1,33 @@ +#pragma once + +#include <vector> +#include <forward_list> + +#include "XY.h" + +class Museum; +class Canvas; + +class Pathfinder { +public: + typedef std::forward_list<XY> Path; + +public: + Pathfinder(Museum &); + + virtual void find_between(const XY &, const XY &) = 0; + virtual const Path & get_path() = 0; + + virtual bool is_visited(const XY &); + +protected: + virtual void clear(); + virtual void set_visited(const XY &); + +private: + std::vector<bool> visisted; + +protected: + Museum & museum; +}; + |