diff options
Diffstat (limited to 'src/games/Game.cpp')
-rw-r--r-- | src/games/Game.cpp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/games/Game.cpp b/src/games/Game.cpp new file mode 100644 index 0000000..628f5d4 --- /dev/null +++ b/src/games/Game.cpp @@ -0,0 +1,39 @@ +#include <basic/defs.hpp> +#include <games/Game.hpp> +#include <games/tetris/Tetris.hpp> +#include <games/snake/Snake.hpp> +#include <games/minesweeper/Minesweeper.hpp> + +#include <assert.h> +#include <memory> + + +std::unique_ptr<Game> +Game::Select(GameType type) +{ + switch (type) { + case NO_GAME: { + return nullptr; + } + + case TETRIS: { + return std::make_unique<Tetris>(); + } break; + + case SNAKE: { + return std::make_unique<Snake>(); + } break; + + case MINESWEEPER: { + return std::make_unique<Minesweeper>(); + } break; + + InvalidDefaultCase; + } + + return nullptr; +} + + +Game::~Game() {} + |