#pragma once #include #include #include #include "Card.hpp" typedef std::function)> RevealCallbackFunc; typedef std::function CleanupCallbackFunc; class Game; enum class BoardState { Empty, HasCards, C }; class Board { public: Board(Game* parent); void RevealCard(); void Cleanup(); inline const std::vector>& GetOpenCards() { return openCards; } void SetRevealCallback(RevealCallbackFunc callbackFunc); void SetCleanupCallback(CleanupCallbackFunc callbackFunc); private: std::vector> openCards; RevealCallbackFunc revealCallback; CleanupCallbackFunc cleanupCallback; Game* parent; };