123 lines
2.2 KiB
C++
123 lines
2.2 KiB
C++
#include <iostream>
|
|
#include <vector>
|
|
#include <map>
|
|
|
|
#define MAX_TURNS 30
|
|
enum Objects{
|
|
Acid,
|
|
Weed,
|
|
Speed,
|
|
Cocaine,
|
|
Ludes
|
|
|
|
|
|
};
|
|
class Bags{
|
|
public:
|
|
|
|
int max_Number_Items;
|
|
std::vector<Objects> items;
|
|
std::map<std::string, std::vector<int>> indexesMap;
|
|
|
|
Bags(){
|
|
indexesMap["Acid"] = std::vector<int>();
|
|
indexesMap["Weed"] = std::vector<int>();
|
|
indexesMap["Speed"] = std::vector<int>();
|
|
indexesMap["Cocaine"] = std::vector<int>();
|
|
indexesMap["Ludes"] = std::vector<int>();
|
|
|
|
}
|
|
|
|
void setCapacity(int size){
|
|
this->max_Number_Items = size;
|
|
|
|
};
|
|
void addItem(Objects item){
|
|
items.push_back(item);
|
|
addIndexToIndexesMap(item);
|
|
|
|
}
|
|
void addIndexToIndexesMap(Objects item){
|
|
switch (item) {
|
|
case Acid:
|
|
indexesMap["Acid"].push_back(items.size()-1);
|
|
break;
|
|
case Weed:
|
|
indexesMap["Weed"].push_back(items.size()-1);
|
|
break;
|
|
case Speed:
|
|
indexesMap["Speed"].push_back(items.size()-1);
|
|
break;
|
|
case Cocaine:
|
|
indexesMap["Cocaine"].push_back(items.size()-1);
|
|
break;
|
|
case Ludes:
|
|
indexesMap["Ludes"].push_back(items.size()-1);
|
|
break;
|
|
}
|
|
};
|
|
void addMultipleItems(Objects item, int n){
|
|
for (int i = 0; i< n;i++){
|
|
addItem(item);
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
class Basic_Trenchcoat: public Bags{
|
|
public:
|
|
Basic_Trenchcoat(): Bags(){
|
|
this->setCapacity(100);
|
|
|
|
}
|
|
};
|
|
|
|
class Player{
|
|
private:
|
|
int Money = 0;
|
|
Bags *inventory = new Basic_Trenchcoat();
|
|
|
|
public:
|
|
|
|
~Player(){
|
|
delete inventory;
|
|
}
|
|
|
|
void addItemsToInventory(Objects items, int n){
|
|
inventory->addMultipleItems(items,n);
|
|
}
|
|
|
|
};
|
|
|
|
class Game{
|
|
private:
|
|
Player *player = new Player();
|
|
int current_Turn = 0;
|
|
|
|
|
|
public:
|
|
void Run(){
|
|
player->addItemsToInventory(Acid,150);
|
|
|
|
|
|
};
|
|
~Game(){
|
|
delete player;
|
|
|
|
}
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
int main() {
|
|
Game *main = new Game;
|
|
main->Run();
|
|
|
|
delete main;
|
|
|
|
return 0;
|
|
}
|