Question: Your final project must have: A JavaFX class that extends Application Abstract base class and two subclasses that extend the abstract class An unrelated utility
Your final project must have:
- A JavaFX class that extends Application
- Abstract base class and two subclasses that extend the abstract class
- An unrelated "utility" class that is used by the classes above (e.g. a Dice class)
- GUI to build (set attributes of) the base classes with the ability to alter and change the setup. If you use color, or similar, you MUST use an object (NOT TEXT)
- The following Interfaces: Serializable, Comparable
- A class that throws an exception, and another that has a try/catch/finally block that uses that exception
- a Menu that at minimum allows the user to save a *BINARY* file and open an existing file that stored the status objects
- JavaDocs & UMLs for each class.


Project 1: Simple RPG battle game In this project you are going to create a simple battle game. You will have two types of opponents: Hydrons and Zexors. Hydrons and Zexors extend from the abstract Monster class. Create two classes: one for Hydrons and one for Zexors. Create a DiceRoll class. The attributes of the classes are as follows: Hydrons: have color, height, weight, health (starts at 25), damage potential (0-10, scaled by health), attack type, number of battles won, number of battles lost, name, and home planet. Hydrons are Triangles. Zexors: have color, height, weight, health (starts at 25), damage potential (0-10, scaled by health), attack type, number of battles won, number of battles lost, name, and species. Zexors are Circles. DiceRoll: number of sides The methods are up to you. How the health changes by battle loss is up to you but must be clearly documented Setup: The user is asked to create 3 Hydrons and 3 Zexors, and determines how many sides to the dice. Color for each monster is set via user input (NOT "RED" but rather RBG values either input via textbox or via slider) The program randomly chooses a Hydron and pits it against a randomly chosen Zexor. Each battle is determined by the a dice roll - each Hydron and Zexor rolls a single die. The higher of the dice rolls wins the battle. Damage is attributed to the loser, which also affects the damage potential of the loser. If a Hydron or Zexor does not engage in a battle, then their health increases by 1 to a maximum of 25. Appropriate information should be printed at the end of each battle round for all 6 creatures. As a monster loses health either its color or its size should decrease (or both) Battle results must be written to a file. There should be a menu to save and to load a game. Something must throw an exception that is caught and handled elsewhere. For example: Battle 1: Hydron Fred (damage potential 8) battles ZexorSally (damage potential 6). They are both at full health and roll a 7 sided die. Zexor Sally rolls a 4 and Hydron Fred rolls a 1. Zexor Sally wins, HydronFred has health of 19 (25-6); Hydron Fred's damage potential is now reduced by 76%. Battle 2: Hydron Fred battles Zexor Thor (damage potential 9). Zexor Thor is at full health. ZexorThor rolls a 2 and HydronFred rolls 7. ZexorThor takes damage of 76% of 8. And so on until one of the 6 creatures has a health of 0. You will be graded based on the programming rubric for the course. Your analysis MUST include the algorithm for calculating health at the end of a round. This project incorporates: Loops Random numbers Classes & objects : including abstract classes and interfaces Arrays of objects Methods User Interface / User Experience Binary file i/o Menus Exceptions
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
