Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reshenie na zadacha Alien so nasleduvanje #1

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 37 additions & 16 deletions examples/src/main/java/mk/ukim/finki/np/av4/Alien.java
Original file line number Diff line number Diff line change
@@ -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();

}
48 changes: 23 additions & 25 deletions examples/src/main/java/mk/ukim/finki/np/av4/AlienPack.java
Original file line number Diff line number Diff line change
@@ -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;
}
}
22 changes: 22 additions & 0 deletions examples/src/main/java/mk/ukim/finki/np/av4/Marshmallow.java
Original file line number Diff line number Diff line change
@@ -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;
}

}
22 changes: 22 additions & 0 deletions examples/src/main/java/mk/ukim/finki/np/av4/Ogre.java
Original file line number Diff line number Diff line change
@@ -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;
}

}
22 changes: 22 additions & 0 deletions examples/src/main/java/mk/ukim/finki/np/av4/Snake.java
Original file line number Diff line number Diff line change
@@ -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;
}

}
18 changes: 18 additions & 0 deletions examples/src/main/java/mk/ukim/finki/np/av4/TestAliens.java
Original file line number Diff line number Diff line change
@@ -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());
}

}