Details:

The class should be named appropriately.

The class should contain the following Private data members

string for the player name

string for the player type

bool for player avatar

unsigned int for the player score

unsigned short for the player level

unsigned short for the player health

float for the player experience

Note: The data members described above were created in class

The class should contain the following Private methods:

void SetValidPlayerTypes();

string ToLowercase(string text);

Note: The methods described above were created in class

The class should contain the following Public methods:

A default constructor (has no arguments)

An overloaded constructor (has all data members passed as arguments)

An overloaded constructor (has the name and avatar members passed as arguments)

Set methods for all data members (exception: the vector that contains the valid player types)

Get methods for all data members (exception: the vector that contains the valid player types)

Note: The methods described above, except for the overloaded constructor that has the name and avatar members passed as arguments, were created in class.

Validation:

The SetType method already has built in validation (checking) that we created in class.

Add validation for the following data members based on the information provided below:

Score: maximum value = 2,000,000 (minimum = 0)

Level: maximum value = 20 (minimum = 1)

Health: maximum value = 100 (minimum = 0)

Experience: maximum value = 100.0f (minimum = 0.0f)

Type: only allows one of the eight valid types

Name: minimum length of one character

Note: Use constants when verifying, not hard coded numeric values.

Add 5 more player data members:

Faction (whose side or team the player is on, must have at least 2 sides)

strength (maximum value is 200, minimum is 0)

wisdom (maximum value is 250, minimum is 1)

weapons (maximum value is 10, minimum is 1)

credits ((maximum value is 2,000,000 , minimum is – 1,000,000 ) negative values are allowed because you can borrow credits.

Note: Use appropriate container (variable) types based on these values and name them clearly.

Each new data member must have a get and set method and the set method must validate (verify/check) the values to make sure they are valid.

Note: Use constants when verifying, not hard coded numeric values.

You will need to modify the overloaded constructors to include these new data members. Make sure you use the new set methods to validate the passed arguments in the overloaded constructors.

Modify the Output method so that it includes all 5 new data members and make sure the output is properly formatted (looks nice!)

Add a new Public method:

Add a new Public method that returns the players Type and Name as a single string, for example “Wizard Gandalf”. Name this method appropriately.

Note: This method would be very useful in a real world situation as the game players are referred to my both their name and type.

In the main function create 2 player objects (instances of your class) using the default constructor, then ask the user to enter names and types for both these players, use cin to get this information. Make sure you clearly ask the user to enter this information. Once you have this information pass it to your objects then output both player objects data.

Also in the main function now create 2 more player objects (instances of your class) using both of the overloaded constructors (one created with each of the two overloaded constructors) , use different values for each players data members, then output both players data.

Note: All member data passed as arguments must be correct for the type of variable used in the class and must not be too large to fit in the variable type.

Also in the main function output the type and name of all 4 players using the method that returns the Type and Name as a single string.

Add descriptive comments for the following items (using your own words state what they are) you can search for descriptions, I recommended including MSDN in your search statement:

class

public

private

break

tolower

string.empty()

cin

push_back

default constructor

overloaded constructor

simple Creating Classes and simple validation/AN