Tests running but missing comments
This commit is contained in:
1 parent
080506e1ef
commit
9bb3af19a9
16 files changed
+220
-25
No files matched your search
Binary file not shown.
@@ -68,7 +68,7 @@ public class Creature {
|
|||||||
* @param dateOfBirth of creature
|
* @param dateOfBirth of creature
|
||||||
* @param health of creature to start
|
* @param health of creature to start
|
||||||
*/
|
*/
|
||||||
Creature(final String name,
|
public Creature(final String name,
|
||||||
final Date dateOfBirth,
|
final Date dateOfBirth,
|
||||||
final int health)
|
final int health)
|
||||||
{
|
{
|
||||||
@@ -101,9 +101,13 @@ public class Creature {
|
|||||||
* @param damage to be dealt
|
* @param damage to be dealt
|
||||||
* @throws DamageException if damage is negative
|
* @throws DamageException if damage is negative
|
||||||
*/
|
*/
|
||||||
protected void takeDamage(final int damage)
|
public void takeDamage(final int damage)
|
||||||
throws DamageException
|
throws DamageException, RuntimeException
|
||||||
{
|
{
|
||||||
|
if (!this.isAlive()){
|
||||||
|
throw new RuntimeException("The creature is not alive.");
|
||||||
|
}
|
||||||
|
else{
|
||||||
if (damage < NO_HEALTH) {
|
if (damage < NO_HEALTH) {
|
||||||
throw new DamageException("Damage cannot be negative");
|
throw new DamageException("Damage cannot be negative");
|
||||||
}
|
}
|
||||||
@@ -114,6 +118,7 @@ public class Creature {
|
|||||||
this.health = NO_HEALTH;
|
this.health = NO_HEALTH;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* heal increases the health value.
|
* heal increases the health value.
|
||||||
@@ -153,8 +158,19 @@ public class Creature {
|
|||||||
*
|
*
|
||||||
* @return details of the creature.
|
* @return details of the creature.
|
||||||
*/
|
*/
|
||||||
protected String getDetails() {
|
public String getDetails() {
|
||||||
return "Name: " + this.name;
|
StringBuilder builder;
|
||||||
|
builder = new StringBuilder();
|
||||||
|
builder.append("Is alive: " + this.isAlive());
|
||||||
|
builder.append("Name: " + this.name);
|
||||||
|
builder.append("Date of birth: " + this.dateOfBirth);
|
||||||
|
builder.append("Age: " + this.getAgeYears());
|
||||||
|
builder.append("Health: " + this.health);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return builder.toString();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -162,7 +178,18 @@ public class Creature {
|
|||||||
*
|
*
|
||||||
* @return name of the creature
|
* @return name of the creature
|
||||||
*/
|
*/
|
||||||
protected String getName() {
|
public String getName() {
|
||||||
return this.name;
|
return this.name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prints the details of the creature.
|
||||||
|
*/
|
||||||
|
public void printDetails() {
|
||||||
|
System.out.println(getDetails());
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getHealth() { return this.health;}
|
||||||
|
public Date getDateOfBirth() { return this.dateOfBirth;}
|
||||||
|
|
||||||
}
|
}
|
||||||
Binary file not shown.
Binary file not shown.
@@ -13,7 +13,7 @@ public final class Date {
|
|||||||
public static final int MAX_YEAR = 2025;
|
public static final int MAX_YEAR = 2025;
|
||||||
|
|
||||||
// Domain of dates
|
// Domain of dates
|
||||||
private static final int MIN_YEAR = 1800;
|
private static final int MIN_YEAR = 0;
|
||||||
private static final int MIN_DAY = 1;
|
private static final int MIN_DAY = 1;
|
||||||
private static final int CURRENT_DAY = 15;
|
private static final int CURRENT_DAY = 15;
|
||||||
private static final int CURRENT_MONTH = 9;
|
private static final int CURRENT_MONTH = 9;
|
||||||
|
|||||||
Binary file not shown.
@@ -38,7 +38,7 @@ public class Dragon extends Creature {
|
|||||||
* @param health int
|
* @param health int
|
||||||
* @param firePower int
|
* @param firePower int
|
||||||
*/
|
*/
|
||||||
Dragon(
|
public Dragon(
|
||||||
final String name,
|
final String name,
|
||||||
final Date dateOfBirth,
|
final Date dateOfBirth,
|
||||||
final int health,
|
final int health,
|
||||||
@@ -55,10 +55,21 @@ public class Dragon extends Creature {
|
|||||||
* @return details of dragon
|
* @return details of dragon
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
protected String getDetails() {
|
public String getDetails() {
|
||||||
return "Name: " + this.getName() + " FirePower: " + this.firePower;
|
StringBuilder builder;
|
||||||
}
|
builder = new StringBuilder();
|
||||||
|
builder.append("Is alive: " + this.isAlive());
|
||||||
|
builder.append(" Name: " + this.getName());
|
||||||
|
builder.append(" Date of birth: " + (this.getDateOfBirth()).getYyyyMmDd());
|
||||||
|
builder.append(" Age: " + this.getAgeYears());
|
||||||
|
builder.append(" Health: " + this.getHealth());
|
||||||
|
builder.append(" FirePower: " + this.firePower);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return builder.toString();
|
||||||
|
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* breathFire onto Creatures to deal damage
|
* breathFire onto Creatures to deal damage
|
||||||
* and reduces current firePower value
|
* and reduces current firePower value
|
||||||
@@ -66,16 +77,22 @@ public class Dragon extends Creature {
|
|||||||
* @param target Creature to deal damage to
|
* @param target Creature to deal damage to
|
||||||
* @throws LowFirePowerException if not enough firePower
|
* @throws LowFirePowerException if not enough firePower
|
||||||
*/
|
*/
|
||||||
protected void breatheFire(final Creature target)
|
public void breatheFire(final Creature target)
|
||||||
throws LowFirePowerException
|
throws LowFirePowerException, RuntimeException {
|
||||||
{
|
|
||||||
if (firePower > FIRE_POWER_USAGE) {
|
if (!this.isAlive()) {
|
||||||
|
throw new RuntimeException("The dragon is not alive.");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if(firePower < FIRE_POWER_USAGE) {
|
||||||
throw new LowFirePowerException("Fire power too low");
|
throw new LowFirePowerException("Fire power too low");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this.firePower -= FIRE_POWER_USAGE;
|
this.firePower -= FIRE_POWER_USAGE;
|
||||||
|
|
||||||
target.takeDamage(FIRE_POWER_DAMAGE);
|
target.takeDamage(FIRE_POWER_DAMAGE);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Binary file not shown.
@@ -38,7 +38,7 @@ public class Elf extends Creature {
|
|||||||
* @param health int
|
* @param health int
|
||||||
* @param mana int
|
* @param mana int
|
||||||
*/
|
*/
|
||||||
Elf(
|
public Elf(
|
||||||
final String name,
|
final String name,
|
||||||
final Date dateOfBirth,
|
final Date dateOfBirth,
|
||||||
final int health,
|
final int health,
|
||||||
@@ -57,8 +57,17 @@ public class Elf extends Creature {
|
|||||||
* @return details of elf
|
* @return details of elf
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
protected String getDetails() {
|
public String getDetails() {
|
||||||
return "Name: " + this.getName() + " Mana: " + this.mana;
|
StringBuilder builder;
|
||||||
|
builder = new StringBuilder();
|
||||||
|
builder.append("Is alive: " + this.isAlive());
|
||||||
|
builder.append(" Name: " + this.getName());
|
||||||
|
builder.append(" Date of birth: " + (this.getDateOfBirth()).getYyyyMmDd());
|
||||||
|
builder.append(" Age: " + this.getAgeYears());
|
||||||
|
builder.append(" Health: " + this.getHealth());
|
||||||
|
builder.append(" Mana: " + this.mana);
|
||||||
|
|
||||||
|
return builder.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -68,9 +77,13 @@ public class Elf extends Creature {
|
|||||||
* @param target Creature to deal damage to
|
* @param target Creature to deal damage to
|
||||||
* @throws LowManaException if mana value is too low
|
* @throws LowManaException if mana value is too low
|
||||||
*/
|
*/
|
||||||
protected void castSpell(final Creature target)
|
public void castSpell(final Creature target)
|
||||||
throws LowManaException
|
throws LowManaException, RuntimeException
|
||||||
{
|
{
|
||||||
|
if(!this.isAlive()){
|
||||||
|
throw new RuntimeException("The elf is not alive.");
|
||||||
|
}
|
||||||
|
else{
|
||||||
if (this.mana < MANA_USAGE) {
|
if (this.mana < MANA_USAGE) {
|
||||||
throw new LowManaException("Not enough mana to cast spell");
|
throw new LowManaException("Not enough mana to cast spell");
|
||||||
}
|
}
|
||||||
@@ -79,6 +92,7 @@ public class Elf extends Creature {
|
|||||||
|
|
||||||
target.takeDamage(MANA_DAMAGE);
|
target.takeDamage(MANA_DAMAGE);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* restoreMana by a given value and is maxed
|
* restoreMana by a given value and is maxed
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -40,7 +40,7 @@ public class Orc extends Creature {
|
|||||||
* @param health int
|
* @param health int
|
||||||
* @param rage int
|
* @param rage int
|
||||||
*/
|
*/
|
||||||
Orc(
|
public Orc(
|
||||||
final String name,
|
final String name,
|
||||||
final Date dateOfBirth,
|
final Date dateOfBirth,
|
||||||
final int health,
|
final int health,
|
||||||
@@ -59,8 +59,17 @@ public class Orc extends Creature {
|
|||||||
* @return details of orc
|
* @return details of orc
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
protected String getDetails() {
|
public String getDetails() {
|
||||||
return "Name: " + this.getName() + " Rage: " + this.rage;
|
StringBuilder builder;
|
||||||
|
builder = new StringBuilder();
|
||||||
|
builder.append("Is alive: " + this.isAlive());
|
||||||
|
builder.append(" Name: " + this.getName());
|
||||||
|
builder.append(" Date of birth: " + (this.getDateOfBirth()).getYyyyMmDd());
|
||||||
|
builder.append(" Age: " + this.getAgeYears());
|
||||||
|
builder.append(" Health: " + this.getHealth());
|
||||||
|
builder.append(" Rage: " + this.rage);
|
||||||
|
|
||||||
|
return builder.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -71,9 +80,14 @@ public class Orc extends Creature {
|
|||||||
* @param target Creature to deal damage to
|
* @param target Creature to deal damage to
|
||||||
* @throws LowRageException if rage value is too low
|
* @throws LowRageException if rage value is too low
|
||||||
*/
|
*/
|
||||||
protected void bezerk(final Creature target)
|
public void berserk(final Creature target)
|
||||||
throws LowRageException
|
throws LowRageException, RuntimeException
|
||||||
{
|
{
|
||||||
|
if(!this.isAlive()){
|
||||||
|
throw new RuntimeException("The orc is not alive.");
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
|
||||||
this.rage += RAGE_INCREMENT;
|
this.rage += RAGE_INCREMENT;
|
||||||
|
|
||||||
if (this.rage > MAX_RAGE_VALUE) {
|
if (this.rage > MAX_RAGE_VALUE) {
|
||||||
@@ -87,5 +101,9 @@ public class Orc extends Creature {
|
|||||||
} else {
|
} else {
|
||||||
target.takeDamage(DOUBLE);
|
target.takeDamage(DOUBLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,119 @@
|
|||||||
|
package ca.bcit.comp2522;
|
||||||
|
|
||||||
|
import ca.bcit.comp2522.lab02.Creature;
|
||||||
|
import ca.bcit.comp2522.lab02.Date;
|
||||||
|
import ca.bcit.comp2522.lab02.Dragon;
|
||||||
|
import ca.bcit.comp2522.lab02.Elf;
|
||||||
|
import ca.bcit.comp2522.lab02.Orc;
|
||||||
|
import ca.bcit.comp2522.lab02.LowFirePowerException;
|
||||||
|
import ca.bcit.comp2522.lab02.LowManaException;
|
||||||
|
import ca.bcit.comp2522.lab02.LowRageException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A test driver for the Creature class and its subclasses.
|
||||||
|
*/
|
||||||
|
public class CreatureTest {
|
||||||
|
/**
|
||||||
|
* Main entry point for the test program.
|
||||||
|
*
|
||||||
|
* @param args command-line arguments (not used)
|
||||||
|
* @throws LowFirePowerException if a dragon attempts to breathe fire with insufficient fire power
|
||||||
|
* @throws LowManaException if an elf attempts to cast a spell with insufficient mana
|
||||||
|
*/
|
||||||
|
public static void main(String[] args) throws LowFirePowerException, LowManaException, LowRageException {
|
||||||
|
|
||||||
|
final Creature creatureDragon;
|
||||||
|
final Creature creatureElf;
|
||||||
|
final Creature creatureOrc;
|
||||||
|
|
||||||
|
final Date dragonBirthDate;
|
||||||
|
final Date elfBirthDate;
|
||||||
|
final Date orcBirthDate;
|
||||||
|
|
||||||
|
dragonBirthDate = new Date(2012, 9, 17);
|
||||||
|
elfBirthDate = new Date(1900, 11, 5);
|
||||||
|
orcBirthDate = new Date(500, 5, 3);
|
||||||
|
|
||||||
|
creatureDragon = new Dragon("Sparky", dragonBirthDate, 5, 60);
|
||||||
|
creatureElf = new Elf("Ben", elfBirthDate, 10, 15);
|
||||||
|
creatureOrc = new Orc("Shobob", orcBirthDate, 12, 3);
|
||||||
|
|
||||||
|
final Dragon dragon = (Dragon)creatureDragon;
|
||||||
|
final Elf elf = (Elf)creatureElf;
|
||||||
|
final Orc orc = (Orc)creatureOrc;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
dragon.printDetails();
|
||||||
|
if (dragon instanceof Creature) System.out.println("This creature is a Dragon.");
|
||||||
|
elf.printDetails();
|
||||||
|
if (elf instanceof Creature) System.out.println("This creature is an Elf.");
|
||||||
|
orc.printDetails();
|
||||||
|
if (orc instanceof Creature) System.out.println("This creature is an Orc.");
|
||||||
|
|
||||||
|
// Fight sequence — all guarded by friendly exception handling
|
||||||
|
try {
|
||||||
|
|
||||||
|
System.out.println("- Dragon breathed fire on the Elf");
|
||||||
|
dragon.breatheFire(elf);
|
||||||
|
|
||||||
|
dragon.printDetails();
|
||||||
|
elf.printDetails();
|
||||||
|
orc.printDetails();
|
||||||
|
|
||||||
|
} catch (LowFirePowerException e) {
|
||||||
|
System.out.println("Attack Not allowed: the dragon's fire power was too low to breathe fire.");
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println("Unexpected problem during attack: " + e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
System.out.println("- Elf cast a spell on the Dragon");
|
||||||
|
elf.castSpell(dragon);
|
||||||
|
|
||||||
|
dragon.printDetails();
|
||||||
|
elf.printDetails();
|
||||||
|
orc.printDetails();
|
||||||
|
|
||||||
|
} catch (LowManaException e) {
|
||||||
|
System.out.println("Attack Not allowed: the elf didn't have enough mana to cast the spell.");
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println("Unexpected problem during attack: " + e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
System.out.println("- Orc went berserk on the Elf");
|
||||||
|
orc.berserk(elf);
|
||||||
|
|
||||||
|
dragon.printDetails();
|
||||||
|
elf.printDetails();
|
||||||
|
orc.printDetails();
|
||||||
|
|
||||||
|
} catch (LowRageException e) {
|
||||||
|
System.out.println("Attack Not allowed: the orc didn't have enough rage to go berserk");
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println("Unexpected problem during attack: " + e.getMessage());
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
|
||||||
|
System.out.println("- Dragon breathed fire on the Elf");
|
||||||
|
dragon.breatheFire(elf);
|
||||||
|
|
||||||
|
dragon.printDetails();
|
||||||
|
elf.printDetails();
|
||||||
|
orc.printDetails();
|
||||||
|
|
||||||
|
} catch (LowFirePowerException e) {
|
||||||
|
System.out.println("Attack Not allowed: the dragon's fire power was too low to breathe fire.");
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println("Unexpected problem during attack: " + e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("Final Stats:");
|
||||||
|
dragon.printDetails();
|
||||||
|
elf.printDetails();
|
||||||
|
orc.printDetails();
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in new issue
Block a user