Problem:
We want to again extend our game of Warriors and Nobles
It turns out that there is more than one type of Noble. And in fact Warriors aren't the only people they can hire to do their fighting. There is magic in the land! Life (and death) are otherwise fairly similar. Nobles are still the only ones who go around declaring war upon each other.
Nobles
Nobles come in two varieties with rather fancy sounding titles:
• Those Who are Lords of the Land
• Those With Strength to Fight
Those Who are Lords of the Land
Those Who are Lords of the Land have no strength of their own but are able to fight using the strength and skill of their army.
Thus these are the people whom we knew as Nobles in past assignments.
A Lord's army consist of Protectors. When a Lord goes into battle with another Noble, each of the Lord's Protectors will defend him in a way described below, under Protectors.
The Lord will win or lose depending on whether the total combined strength of his army is more or less than the strength of the opposing Noble. The strengths of each of his Protectors will be effected by the battle in the same manner as in prior assignments with the Noble's army.
The idea of "defending" is new to this assignment.
Lords can both hire and fire Protectors. When a Protector is fired, the others in the army close the gap between them, so that the Protectors maintain the same order they had before in the army. (Wouldn't want warriors having to run all about just because one of their comrades gets fired.)
Those With Strength to Fight
This type of Noble is rather different from those we have encountered before. They actually do their own fighting!!!
When doing battle, one with strength to fight will yell "UGH!!!", this being the battle cry handed down to them from the famous Barbarian, Conan. They hope that this will help them in defending themselves.
Furthermore, those With Strength to Fight fight using only their own strength. They do not hire anyone to fight for them and therefore do not have an army. They are born with a certain strength and they have no hope, neither through magic nor excessive exercise, to ever again increase their strength. Alas, our poor fighters will eventually have no strength left with which to fight and thus they shall meet their final demise.
Protectors
Who are these Protectors that defend Lords to the death?
• they are not Nobles!
• they are entities for hire with strength to defend. The amount of their strength set at birth.
• they are entities for hire that have names handed down from times of yore such as "QuessTar" and "VerTraahn", sacred names given at birth.
[Clarification: Hm, there's nothing you have to do about making sure that the names are spelled weirdly or any such. That's just there to make the story line sound more exciting.]
Lords approach Protectors to attempt to engage the service of the Protector. A Lord asks of the Protector if they are at present hired to serve another Lord and if the Protector states that he is, no transaction can take place. However if the transaction can be made, it is - and the Protector is, from that moment onward, in the service of the Lord as defender.
[Clarification: All this so-called dialog simply comes down to is the Lord trying to hire the Protector and succeeding if it's possible.]
In this land there are two kinds of Protectors:
• Wizards
• Warriors
They differ in their ways of defending!
This is the topic mentioned above that is new for this assigment in terms of how individual Protectors fight. In the past the only thing that mattered about one of our warrior's was their strength. Now they acutally do something. Too bad we don't also have animation!
Wizards state "POOF". It is such a hard job to control the strength expended with magic!
There are, further, two kinds of Warriors whose strength is spent in much more known ways:
• Archers
◦ who defend by stating "TWANG! <archer's name says: Take that in the name of my lord, __________" (whence he shouts the name of the lord he is sworn to defend)
• Swordsmen
◦ who defend by stating "CLANG! <swordsman's namesays: Take that in the name of my lord, __________" (whence he shouts the name of the lord he is sworn to defend)
Again, coders beware that your code do rightly enforce all these things about a Protector, be he Wizard, Archer or Swordsman.
Loss of Strength
Each entity with strength loses it in the same manor as described in prior assignments.
Death
It's a sad topic, but one we do have to address.
• People die when they lose a battle, whether they are a Noble or a Protector.
• Lords who are dead are in no position to hire anyone. Any attempt by a dead Lord to hire someone will simple fail and the Protector will remain unhired.
• Similarly dead Protectors cannot be hired. Any attempt to hire the dead simple fails.
• However curiously, as has been seen before, Nobles can declare battle even though they are dead.
• A Protector who is dead, however, cannot fight and so will not have anything to say, even if his Lord does go into battle again.
A sample test file
/* Your classes go here */
int main() {
Lord sam("Sam");
Archer samantha("Samantha", 200);
sam.hires(samantha);
Lord joe("Joe");
PersonWithStrengthToFight randy("Randolf the Elder", 250);
joe.battle(randy);
joe.battle(sam);
Lord janet("Janet");
Swordsman hardy("TuckTuckTheHardy", 100);
Swordsman stout("TuckTuckTheStout", 80);
janet.hires(hardy);
janet.hires(stout);
PersonWithStrengthToFight barclay("Barclay the Bold", 300);
janet.battle(barclay);
janet.hires(samantha);
Archer pethora("Pethora", 50);
Archer thora("Thorapleth", 60);
Wizard merlin("Merlin", 150);
janet.hires(pethora);
janet.hires(thora);
sam.hires(merlin);
janet.battle(barclay);
sam.battle(barclay);
joe.battle(barclay);
}
My output for the above test file is below.
Joe battles Randolf the Elder
Randolf the Elder defeats Joe
Joe battles Sam
He's dead, Sam
Janet battles Barclay the Bold
CLANG! TuckTuckTheHardy says: Take that in the name of my lord, Janet
CLANG! TuckTuckTheStout says: Take that in the name of my lord, Janet
Barclay the Bold defeats Janet
Janet battles Barclay the Bold
He's dead, Barclay the Bold
Sam battles Barclay the Bold
TWANG! Samantha says: Take that in the name of my lord, Sam
POOF!
Sam defeats Barclay the Bold
Joe battles Barclay the Bold
Oh, NO! They're both dead! Yuck!