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
|
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int quit;
string input;
// Declare each races function, to be used later.
void Human();
void Gnome();
void Elf();
void Troll();
// Declare basic class setup
class Base
{
private:
string bRace;
unsigned int bHealth;
unsigned int bDamage;
unsigned int bLevel;
public:
enum HP
{
None = 0,
Small = 5,
Average = 7,
Large = 10
};
Base()
: bRace("Not a race"),
bHealth(0),
bDamage(0),
bLevel(0)
{
}
Base(const string& Race, unsigned int Health, unsigned int Damage, unsigned int Level)
: bRace(Race),
bHealth(Health),
bDamage(Damage),
bLevel(Level)
{
}
// Returning values
const string& GetRace() const { return bRace; }
unsigned int GetHealth() { return bHealth; }
unsigned int GetDamage() { return bDamage; }
unsigned int GetLevel() { return bLevel; }
};
// Declare the race calsses and parameters
class Human:public Base
{
public:
Human()
: Base("Human", Average, 5, 1) {}
};
class Gnome:public Base
{
public:
Gnome()
: Base("Gnome", Small, 4, 1) {}
};
class Elf:public Base
{
public:
Elf()
: Base("Elf", Average, 6, 1) {}
};
class Troll:public Base
{
public:
Troll()
: Base("Troll", Large, 4, 1) {}
};
int main()
{
cout << "------------------------------\n";
cout << "Welcome to the mini-adventure!\n";
cout << "------------------------------\n";
cout << "First, choose your class:\n";
Base myclass;
typedef vector<Base*> BaseVector;
BaseVector Stats;
while(quit == 0)
{
cout << "0.) Exit\n";
cout << "1.) Human\n";
cout << "2.) Gnome\n";
cout << "3.) Elf\n";
cout << "4.) Troll\n";
cin >> input;
if(input.find("0") == 0)
break;
if(input.find("1") == 0)
{
Human myHuman;
Stats.push_back(&myHuman);
BaseVector::iterator cur, curEnd;
cur = Stats.begin();
curEnd = Stats.end();
cout << "Race: " << (*cur)->GetRace() << "\n";
}
}
return 0;
}
| |