Homework 3: Expanded Combat System
This project expands on the previous assignment to build a simple textbased action game. This project focuses on methodizing the processes of your software. There are three tasks that your software must perform.
1. Create a hero
2. Create a monster
3. Run the combat algorithm: hero versus monster
The above defines the basic fundamental structure for a complete game. In the first phase, the player will decide how to best build their own hero. In the second phase, the system will randomly generate a monster such as a goblin, orc, or troll. In the final phase, the system will execute a turnbased combat system similar to the one in the previous assignment. You should identify the various responsibilities that govern your software system and model them using methods.
We will develop this project using an iterative design strategy while testing our code between each iteration. Your first iteration should start with implementing a method that creates a hero. The second iteration should implement a method that creates a monster. The final iteration should implement a method that manages the combat algorithm. This combat method may need to invoke submethods which handle the various attack options such as: melee actions, magic actions, charge actions, or flee actions. You are encouraged to customize, modify, or design your very own combat rules and stats so long as you meet the minimum number of options as listed within these specifications.
You will build a simple game application that uses all the fundamental concepts that we have covered up to Chapter 5. Concepts you may want to consider using for your game may include:
1. Named Constants (used for evaluating & executing user input)
2. Class variables (game data must be accessible to all methods in class)
3. Enumeration types (models the possible game states)
4. Class methods (used to break down the game logic into simpler parts)
5. Passing parameters (pass local data forward from one method to another)
6. Returning values (pass local data backward from one method to another)
7. Logical operators (evaluate multiple criteria for loop control)
8. Repetition statements (character creation and combat loop)
9. Random class (generate scoped random values for damage & health)