P4’s goal is to design the C# classes needed to track creature viability in a MMO game under development.
Part I: Class design
1) GameCreature class (with derived types PredatorCreature and AgileCreature) as defined in P3.
2) Addition of functionality to order, compare, rank, sort GameCreature objects (comprise parent and derived types) according to anticipated rate of energy consumption (computed internally).
3) Ability to cull GameCreature objects (comprise parent and derived types) from gameplay when rate of energy consumption is much high or much low.
4) A game is played with a collection of GameCreatures, a variety of parent and child types. Clearly, many details are missing. You should use operator overloading.
Make reasonable design decisions so that your classes satisfy the stated goals, communicate assumptions and use, and yield clear and maintainable software.
Use ProgrammingByContract to specify pre and post conditions; interface, implementation and class invariants. Relationships should be noted in the appropriate invariants.
You should reuse all GameCreature classes from P3.
Part II: Driver
Design a driver to demonstrate program requirements: Don’t skimp on your driver’s design.
Clearly specify the intent and structure of your driver.
You must have collections of distinct objects appropriately, initialized, that is, random distribution of objects with arbitrary initial values (values should be reasonable) meaningful base values for non-arbitrary initial values
Use C# AND PROGRAMMING