#pragma once #include #include class Tile; class Museum; class Artist; class TileBehaviorStrategy { public: virtual void step(Artist *); virtual void update(Tile &) = 0; virtual std::unique_ptr clone(Museum & m) = 0; protected: TileBehaviorStrategy(const std::string type); TileBehaviorStrategy() = default; protected: unsigned int interactions = 0; Museum * museum = nullptr; };