From da59818ba708afef091d10ae5e9106ce2c0e91a7 Mon Sep 17 00:00:00 2001 From: Mathias Wagner Date: Sat, 11 Nov 2023 23:21:19 +0100 Subject: [PATCH] Created the bitwise_decoder.cpp --- bitwise_decoder.cpp | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 bitwise_decoder.cpp diff --git a/bitwise_decoder.cpp b/bitwise_decoder.cpp new file mode 100644 index 0000000..8cdc6f0 --- /dev/null +++ b/bitwise_decoder.cpp @@ -0,0 +1,43 @@ +#include +#include + +using namespace std; + +class ItemManager { +private: + std::vector availableItems; + +public: + ItemManager() { + availableItems = {1 << 0, 1 << 1, 1 << 2, 1 << 3, 1 << 4, 1 << 5, 1 << 6, 1 << 7, 1 << 8, 1 << 9}; + } + + bool isActivated(int index, int activatedItems) { + return index >= 0 && index < availableItems.size() && + (activatedItems & availableItems[index]) == availableItems[index]; + } + + std::vector getInventory(int activatedItems) { + std::vector activated; + for (size_t i = 0; i < availableItems.size(); ++i) + if (isActivated(i, activatedItems)) activated.push_back(i + 1); + + return activated; + } +}; + +int main() { + ItemManager itemManager; + int inventory; + + cout << "Gib dein Inventar-Bitset ein: "; + cin >> inventory; + + std::vector items = itemManager.getInventory(inventory); + + cout << "========== INVENTAR ==========" << endl; + for (int item: items) cout << "Item #" << item << " " << endl; + cout << "==============================" << endl; + + return 0; +} \ No newline at end of file