Created the bitwise_decoder.cpp

This commit is contained in:
Mathias Wagner 2023-11-11 23:21:19 +01:00
parent b1884a767a
commit da59818ba7
Signed by: Mathias
GPG Key ID: B8DC354B0A1F5B44

43
bitwise_decoder.cpp Normal file
View File

@ -0,0 +1,43 @@
#include <iostream>
#include <vector>
using namespace std;
class ItemManager {
private:
std::vector<int> 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<int> getInventory(int activatedItems) {
std::vector<int> 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<int> items = itemManager.getInventory(inventory);
cout << "========== INVENTAR ==========" << endl;
for (int item: items) cout << "Item #" << item << " " << endl;
cout << "==============================" << endl;
return 0;
}