Lab 08

CSCI 1913 – Introduction to Algorithms, Data Structures, and Program Development

Set up environment

Folder Structure

Your intelij project directory should look something like the following:

Lab08
|-- out
`-- src
    |-- BattleTester.java
    |-- CodeMonsterTester.java
    |-- HealingSkill.java
    |-- MoreSkillsTester.java
    |-- SkillTester.java
    `-- Tester.java

Create Files

Here are the classes you are to create:

Two other skills that you should use extends Skill:

  • VampiricSkill.java
  • FastSkill.java

Use as reference HealingSkill.java which also extends Skill:

public class HealingSkill extends Skill {}

And one class for the monster and another for the battle:

  • CodeMonster.java
  • Battle.java

Javadoc

Key Rules:

  • Starts with /** and ends with */
  • First sentence is a short summary — it appears in the generated HTML overview
  • @param tag should be listed for every parameter

Javadoc

   /**                                                                               
   * Calculates the average of an array of test scores.
   * Returns 0 if the array is null or empty.    
   *              
   * @param scores  an array of test scores, each in the range [0, 100]
   * @param count   the number of scores in the array
   * @return        the average of all scores, or 0 if the array is null or empty
   * @throws        IllegalArgumentException if count is negative
   *
   * @author        Adriana Picoral
   * @version       1.0
   */
  public double calculateAverage(double[] scores, int count) {
      if (scores == null || scores.length == 0) return 0;
      if (count < 0) throw new IllegalArgumentException("Count cannot be negative");

      double sum = 0;
      for (double score : scores) {
          sum += score;
      }
      return sum / count;
  }