diff options
author | fschildt <florian.schildt@protonmail.com> | 2025-07-21 16:07:28 +0200 |
---|---|---|
committer | fschildt <florian.schildt@protonmail.com> | 2025-07-21 16:07:28 +0200 |
commit | b46a0d9369fbaa1938f0968ab216bc2d564a9c37 (patch) | |
tree | c28b75187d01be9642af56a54a6101f51b25e4a7 /src/games/Game.cpp |
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() {} + |