I had to flip a coin to decide whether this should go on this forum, or the C++ forum. Heads won...
I'm messing with classes, getting familliar with them. I came up with a (probably) common way of doing character stats in an RPG.
Code:
#include <iostream>
#include <string>
using namespace std;
class Stats
{
public:
Stats();
~Stats();
void strength(int str);
int displaystrength();
void defense(int def);
int displaydefense();
void health(int hea);
int displayhealth();
protected:
int power;
int vitality;
int hitpoints;
};
Stats::Stats()
{
}
Stats::~Stats()
{
}
void Stats::strength(int str)
{
power=str;
}
int Stats::displaystrength()
{
return power;
}
void Stats::defense(int def)
{
vitality=def;
}
int Stats::displaydefense()
{
return vitality;
}
void Stats::health(int hea)
{
hitpoints=hea;
}
int Stats::displayhealth()
{
return hitpoints;
}
int main()
{
string char_class;
int classcount = 0;
string char_name;
Stats warrior;
warrior.strength(10);
warrior.defense(7);
warrior.health(120);
Stats rogue;
rogue.strength(6);
rogue.defense(8);
rogue.health(200);
Stats defender;
defender.strength(6);
defender.defense(12);
defender.health(150);
Stats character;
cout<<"*Class List*\n";
cout<<"\nWarrior\n";
cout<<"Rogue\n";
cout<<"Defender\n";
while (classcount < 1)
{
cout<<"\nChoose your class: ";
cin>>char_class;
cin.ignore();
if ((char_class == "Warrior") || (char_class == "warrior"))
{
character.strength(10);
character.defense(7);
character.health(120);
classcount++;
}
else if ((char_class == "Rogue") || (char_class == "rogue"))
{
character.strength(6);
character.defense(8);
character.health(200);
classcount++;
}
else if ((char_class == "Defender") || (char_class == "defender"))
{
character.strength(6);
character.defense(12);
character.health(150);
classcount++;
}
else
{
cout<<"\nPlease choose a valid class.\n";
}
}
cout<<"\nAlright, you are a " <<char_class<< ".\n";
cout<<"Now, enter your name: ";
cin>>char_name;
cin.ignore();
cout<<"\nOk, "<<char_name<<", here are your stats.\n\n";
cout<<"Power -- "<<character.displaystrength()<<endl;
cout<<"Vitality -- "<<character.displaydefense()<<endl;
cout<<"Hit Points -- "<<character.displayhealth()<<endl;
cin.get();
}
I've got the basic stuff down, but I'm wanting to take it farther.
How would I make an enemy list of about 20 monsters? Would I use a separate class?