From fba664ba4927d18bb0411e56ff99d283b479981d Mon Sep 17 00:00:00 2001 From: Ilkka Seppala Date: Fri, 8 May 2015 21:01:06 +0300 Subject: [PATCH] Added iteration logic. --- .../src/main/java/com/iluwatar/App.java | 9 ++++++++ .../src/main/java/com/iluwatar/Asteroid.java | 8 ------- .../java/com/iluwatar/FlamingAsteroid.java | 9 ++++++++ .../main/java/com/iluwatar/GameObject.java | 22 ++++++++++++++++++- .../src/main/java/com/iluwatar/Rectangle.java | 5 +++++ 5 files changed, 44 insertions(+), 9 deletions(-) delete mode 100644 double-dispatch/src/main/java/com/iluwatar/Asteroid.java create mode 100644 double-dispatch/src/main/java/com/iluwatar/FlamingAsteroid.java diff --git a/double-dispatch/src/main/java/com/iluwatar/App.java b/double-dispatch/src/main/java/com/iluwatar/App.java index faf592178..f238e8cb1 100644 --- a/double-dispatch/src/main/java/com/iluwatar/App.java +++ b/double-dispatch/src/main/java/com/iluwatar/App.java @@ -1,7 +1,16 @@ package com.iluwatar; +import java.util.ArrayList; +import java.util.List; + public class App { public static void main( String[] args ) { + List objects = new ArrayList<>(); + objects.add(new FlamingAsteroid(0, 0, 5, 5)); + objects.add(new SpaceStationMir(1, 1, 4, 4)); + objects.add(new Meteoroid(10, 10, 15, 15)); + objects.add(new SpaceStationIss(12, 11, 14, 15)); + objects.stream().forEach(o1 -> objects.stream().forEach(o2 -> { if (o1 != o2) System.out.println(String.format("%s -> %s", o1, o2)); } )); } } diff --git a/double-dispatch/src/main/java/com/iluwatar/Asteroid.java b/double-dispatch/src/main/java/com/iluwatar/Asteroid.java deleted file mode 100644 index b6af2e85c..000000000 --- a/double-dispatch/src/main/java/com/iluwatar/Asteroid.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.iluwatar; - -public class Asteroid extends Meteoroid { - - public Asteroid(int left, int top, int right, int bottom) { - super(left, top, right, bottom); - } -} diff --git a/double-dispatch/src/main/java/com/iluwatar/FlamingAsteroid.java b/double-dispatch/src/main/java/com/iluwatar/FlamingAsteroid.java new file mode 100644 index 000000000..6973cd744 --- /dev/null +++ b/double-dispatch/src/main/java/com/iluwatar/FlamingAsteroid.java @@ -0,0 +1,9 @@ +package com.iluwatar; + +public class FlamingAsteroid extends Meteoroid { + + public FlamingAsteroid(int left, int top, int right, int bottom) { + super(left, top, right, bottom); + setOnFire(true); + } +} diff --git a/double-dispatch/src/main/java/com/iluwatar/GameObject.java b/double-dispatch/src/main/java/com/iluwatar/GameObject.java index 6e61c22b5..b4deec728 100644 --- a/double-dispatch/src/main/java/com/iluwatar/GameObject.java +++ b/double-dispatch/src/main/java/com/iluwatar/GameObject.java @@ -2,12 +2,32 @@ package com.iluwatar; public abstract class GameObject extends Rectangle { + private boolean damaged; + private boolean onFire; + public GameObject(int left, int top, int right, int bottom) { super(left, top, right, bottom); } @Override public String toString() { - return this.getClass().getSimpleName(); + return String.format("%s at %s damaged=%b onFire=%b", this.getClass().getSimpleName(), + super.toString(), isDamaged(), isOnFire()); + } + + public boolean isOnFire() { + return onFire; + } + + public void setOnFire(boolean onFire) { + this.onFire = onFire; + } + + public boolean isDamaged() { + return damaged; + } + + public void setDamaged(boolean damaged) { + this.damaged = damaged; } } diff --git a/double-dispatch/src/main/java/com/iluwatar/Rectangle.java b/double-dispatch/src/main/java/com/iluwatar/Rectangle.java index 7f588bcdf..d4c5f44d1 100644 --- a/double-dispatch/src/main/java/com/iluwatar/Rectangle.java +++ b/double-dispatch/src/main/java/com/iluwatar/Rectangle.java @@ -30,4 +30,9 @@ public class Rectangle { boolean intersectsWith(Rectangle r) { return !(r.getLeft() > getRight() || r.getRight() < getLeft() || r.getTop() > getBottom() || r.getBottom() < getTop()); } + + @Override + public String toString() { + return String.format("[%d,%d,%d,%d]", getLeft(), getTop(), getRight(), getBottom()); + } }