From 31fbff9c6ffdb89a8fac35cd919a71bf2ef5bb86 Mon Sep 17 00:00:00 2001 From: DajanaS Date: Thu, 16 Nov 2017 22:33:07 +0100 Subject: [PATCH] Reshenie na zadacha Alien so nasleduvanje --- .../main/java/mk/ukim/finki/np/av4/Alien.java | 53 +++++++++++++------ .../java/mk/ukim/finki/np/av4/AlienPack.java | 48 ++++++++--------- .../mk/ukim/finki/np/av4/Marshmallow.java | 22 ++++++++ .../main/java/mk/ukim/finki/np/av4/Ogre.java | 22 ++++++++ .../main/java/mk/ukim/finki/np/av4/Snake.java | 22 ++++++++ .../java/mk/ukim/finki/np/av4/TestAliens.java | 18 +++++++ 6 files changed, 144 insertions(+), 41 deletions(-) create mode 100644 examples/src/main/java/mk/ukim/finki/np/av4/Marshmallow.java create mode 100644 examples/src/main/java/mk/ukim/finki/np/av4/Ogre.java create mode 100644 examples/src/main/java/mk/ukim/finki/np/av4/Snake.java create mode 100644 examples/src/main/java/mk/ukim/finki/np/av4/TestAliens.java diff --git a/examples/src/main/java/mk/ukim/finki/np/av4/Alien.java b/examples/src/main/java/mk/ukim/finki/np/av4/Alien.java index 1e40968..fd09948 100644 --- a/examples/src/main/java/mk/ukim/finki/np/av4/Alien.java +++ b/examples/src/main/java/mk/ukim/finki/np/av4/Alien.java @@ -1,16 +1,37 @@ -package mk.ukim.finki.np.av4; - -public class Alien { - public static final int SNAKE_ALIEN = 0; - public static final int OGRE_ALIEN = 1; - public static final int MARSHMALLOW_MAN_ALIEN = 2; - public int type; // Stores one of the three above types - public int health; // 0=dead, 100=full strength - public String name; - - public Alien(int type, int health, String name) { - this.type = type; - this.health = health; - this.name = name; - } -} + +public abstract class Alien { + + private int health; + private String name; + + public Alien(){ + this.health = 100; + this.name = "Anonymous"; + } + + public Alien(int health, String name) { + this.health = health; // 0-dead, 100-full_strength + this.name = name; + } + + public int getHealth() { + return health; + } + + public void setHealth(int health) { + this.health = health; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public abstract String getType(); + + public abstract int getDamage(); + +} \ No newline at end of file diff --git a/examples/src/main/java/mk/ukim/finki/np/av4/AlienPack.java b/examples/src/main/java/mk/ukim/finki/np/av4/AlienPack.java index 22b4d74..588fa48 100644 --- a/examples/src/main/java/mk/ukim/finki/np/av4/AlienPack.java +++ b/examples/src/main/java/mk/ukim/finki/np/av4/AlienPack.java @@ -1,32 +1,30 @@ -package mk.ukim.finki.np.av4; public class AlienPack { - private Alien[] aliens; - public AlienPack(int numAliens) { - aliens = new Alien[numAliens]; - } + private Alien[] aliens; - public void addAlien(Alien newAlien, int index) { - aliens[index] = newAlien; - } + public AlienPack() { + aliens = new Alien[0]; + } - public Alien[] getAliens() { - return aliens; - } + public AlienPack(int numAliens) { + aliens = new Alien[numAliens]; + } + + public void addAlien(Alien newAlien, int index){ + aliens[index] = newAlien; + } + + public Alien[] getAliens() { + return aliens; + } + + public int calculateDamage() { + int damage = 0; + for (Alien alien : aliens) { + damage += alien.getDamage(); + } + return damage; + } - public int calculateDamage() { - int damage = 0; - for (int i = 0; i < aliens.length; i++) { - if (aliens[i].type == Alien.SNAKE_ALIEN) { - damage += 10;// Snake does 10 damage - } else if (aliens[i].type == Alien.OGRE_ALIEN) { - damage += 6;// Ogre does 6 damage - } else if (aliens[i].type == Alien.MARSHMALLOW_MAN_ALIEN) { - damage += 1; - // Marshmallow Man does 1 damage - } - } - return damage; - } } diff --git a/examples/src/main/java/mk/ukim/finki/np/av4/Marshmallow.java b/examples/src/main/java/mk/ukim/finki/np/av4/Marshmallow.java new file mode 100644 index 0000000..603f37a --- /dev/null +++ b/examples/src/main/java/mk/ukim/finki/np/av4/Marshmallow.java @@ -0,0 +1,22 @@ + +public class Marshmallow extends Alien { + + public Marshmallow() { + super(); + } + + public Marshmallow(int health, String name) { + super(health, name); + } + + @Override + public String getType() { + return "Marshmallow"; + } + + @Override + public int getDamage() { + return 1; + } + +} diff --git a/examples/src/main/java/mk/ukim/finki/np/av4/Ogre.java b/examples/src/main/java/mk/ukim/finki/np/av4/Ogre.java new file mode 100644 index 0000000..61bc30a --- /dev/null +++ b/examples/src/main/java/mk/ukim/finki/np/av4/Ogre.java @@ -0,0 +1,22 @@ + +public class Ogre extends Alien { + + public Ogre() { + super(); + } + + public Ogre(int health, String name) { + super(health, name); + } + + @Override + public String getType() { + return "Ogre"; + } + + @Override + public int getDamage() { + return 6; + } + +} diff --git a/examples/src/main/java/mk/ukim/finki/np/av4/Snake.java b/examples/src/main/java/mk/ukim/finki/np/av4/Snake.java new file mode 100644 index 0000000..8445306 --- /dev/null +++ b/examples/src/main/java/mk/ukim/finki/np/av4/Snake.java @@ -0,0 +1,22 @@ + +public class Snake extends Alien { + + public Snake() { + super(); + } + + public Snake(int health, String name) { + super(health, name); + } + + @Override + public String getType() { + return "Snake"; + } + + @Override + public int getDamage() { + return 10; + } + +} diff --git a/examples/src/main/java/mk/ukim/finki/np/av4/TestAliens.java b/examples/src/main/java/mk/ukim/finki/np/av4/TestAliens.java new file mode 100644 index 0000000..69fd9ef --- /dev/null +++ b/examples/src/main/java/mk/ukim/finki/np/av4/TestAliens.java @@ -0,0 +1,18 @@ + +public class TestAliens { + + public static void main(String[] args) { + AlienPack aliens = new AlienPack(7); + int i = 0; + aliens.addAlien(new Marshmallow(75, "Prv"), i++); + aliens.addAlien(new Ogre(80, "Vtor"), i++); + aliens.addAlien(new Marshmallow(10, "Tret"), i++); + aliens.addAlien(new Snake(25, "Chetvrt"), i++); + aliens.addAlien(new Snake(15, "Petti"), i++); + aliens.addAlien(new Marshmallow(60, "Shesti"), i++); + aliens.addAlien(new Ogre(5, "Sedmi"), i++); + + System.out.println(aliens.calculateDamage()); + } + +}