Optimized the bitwise_decoder.cpp
This commit is contained in:
parent
667695bbde
commit
82faa75073
@ -3,23 +3,17 @@
|
|||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
|
#define MAX_INVENTORY_SIZE 10
|
||||||
|
|
||||||
class ItemManager {
|
class ItemManager {
|
||||||
private:
|
|
||||||
std::vector<int> availableItems;
|
|
||||||
|
|
||||||
public:
|
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) {
|
bool isActivated(int index, int activatedItems) {
|
||||||
return index >= 0 && index < availableItems.size() &&
|
return index >= 0 && index < MAX_INVENTORY_SIZE && (activatedItems & (1 << index)) == (1 << index);
|
||||||
(activatedItems & availableItems[index]) == availableItems[index];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<int> getInventory(int activatedItems) {
|
std::vector<int> getInventory(int activatedItems) {
|
||||||
std::vector<int> activated;
|
std::vector<int> activated;
|
||||||
for (size_t i = 0; i < availableItems.size(); ++i)
|
for (size_t i = 0; i < MAX_INVENTORY_SIZE; i++)
|
||||||
if (isActivated(i, activatedItems)) activated.push_back(i + 1);
|
if (isActivated(i, activatedItems)) activated.push_back(i + 1);
|
||||||
|
|
||||||
return activated;
|
return activated;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user