1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
|
#include <iostream>
#include <cstdlib>
#include <string.h>
#include <list>
using namespace std;
class Item
{
private:
int weight;
string name;
public:
Item(){}
Item(int _weight, string _name): weight(_weight), name(_name){}
int get_weight()
{
return weight;
}
string get_name()
{
return name;
}
};
class Weapon : public Item
{
private:
int damage; // for( damage - "Monstrets hp")
/* int weaponspeed; */
int range; // 1-10 i range använd if sats
public:
Weapon(int _weight, string _name, int _damage, /*int _weaponspeed,*/ int _range)
: damage(_damage), /*weaponspeed(_weaponspeed),*/ range(_range), Item(_weight, _name){}
int get_damage()
{
return damage;
}
int get_range()
{
return range;
}
};
class Shooter : public Weapon
{
private:
int clipsize;
/* int reloadtime; */
int ammunition;
public:
Shooter(int _weight, string _name, int _damage, /*int _weaponspeed,*/ int _range, int _clipsize, /*int _reloadtime,*/ int _ammunition)
: clipsize(_clipsize), /*reloadtime(_reloadtime),*/ ammunition(_ammunition), Weapon(_weight, _name, _damage,/* _weaponspeed,*/ _range){}
int get_clipsize()
{
return clipsize;
}
int get_ammunition()
{
return ammunition;
}
};
class SkapaVapen : public Shooter // Namn = Magnum
{
public:
SkapaVapen(int _weight, string _name, int _damage, /*int _weaponspeed,*/ int _range, int _clipsize, /*int _reloadtime,*/ int _ammunition)
: Shooter(_weight, _name, _damage, /*_weaponspeed,*/ _range, _clipsize, /*_reloadtime,*/ _ammunition){}
void skrivut()
{
cout<<"Name: "<<get_name()<<endl<<"Weight: "<<get_weight()<<endl<<"Damage: "<<get_damage()<<endl<<"Range: "<<get_range()
<<endl<<"Clipsize: "<<get_clipsize()<<endl<<"Ammunition: "<<get_ammunition()<<endl;
cout << endl;
}
};
class Backpack
{
public:
list<SkapaVapen>packback;
void flyttaBak(SkapaVapen * SMG)
{
packback.push_back(SMG);
}
void flyttaFram(SkapaVapen *Pistol)
{
packback.push_front(Pistol);
}
};
int main()
{
// Vapen
SkapaVapen Pistol(2, "Magnum", 8, 5, 6, 15);
SkapaVapen SMG(4, "K-pist", 3, 6, 70, 100);
// Item
Item apple(1, "Apple");
Backpack b;
b.flyttaFram();
return 0;
}
|