diff --git a/double-dispatch/src/main/java/com/iluwatar/Asteroid.java b/double-dispatch/src/main/java/com/iluwatar/Asteroid.java new file mode 100644 index 000000000..b6af2e85c --- /dev/null +++ b/double-dispatch/src/main/java/com/iluwatar/Asteroid.java @@ -0,0 +1,8 @@ +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/GameObject.java b/double-dispatch/src/main/java/com/iluwatar/GameObject.java new file mode 100644 index 000000000..6e61c22b5 --- /dev/null +++ b/double-dispatch/src/main/java/com/iluwatar/GameObject.java @@ -0,0 +1,13 @@ +package com.iluwatar; + +public abstract class GameObject extends Rectangle { + + public GameObject(int left, int top, int right, int bottom) { + super(left, top, right, bottom); + } + + @Override + public String toString() { + return this.getClass().getSimpleName(); + } +} diff --git a/double-dispatch/src/main/java/com/iluwatar/Meteoroid.java b/double-dispatch/src/main/java/com/iluwatar/Meteoroid.java new file mode 100644 index 000000000..40435fcd7 --- /dev/null +++ b/double-dispatch/src/main/java/com/iluwatar/Meteoroid.java @@ -0,0 +1,8 @@ +package com.iluwatar; + +public class Meteoroid extends GameObject { + + public Meteoroid(int left, int top, int right, int bottom) { + super(left, top, right, bottom); + } +} diff --git a/double-dispatch/src/main/java/com/iluwatar/Rectangle.java b/double-dispatch/src/main/java/com/iluwatar/Rectangle.java new file mode 100644 index 000000000..7f588bcdf --- /dev/null +++ b/double-dispatch/src/main/java/com/iluwatar/Rectangle.java @@ -0,0 +1,33 @@ +package com.iluwatar; + +public class Rectangle { + + private int left; + private int top; + private int right; + private int bottom; + + public Rectangle(int left, int top, int right, int bottom) { + this.left = left; + this.top = top; + this.right = right; + this.bottom = bottom; + } + + public int getLeft() { + return left; + } + public int getTop() { + return top; + } + public int getRight() { + return right; + } + public int getBottom() { + return bottom; + } + + boolean intersectsWith(Rectangle r) { + return !(r.getLeft() > getRight() || r.getRight() < getLeft() || r.getTop() > getBottom() || r.getBottom() < getTop()); + } +} diff --git a/double-dispatch/src/main/java/com/iluwatar/SpaceStationIss.java b/double-dispatch/src/main/java/com/iluwatar/SpaceStationIss.java new file mode 100644 index 000000000..ad25e4cc1 --- /dev/null +++ b/double-dispatch/src/main/java/com/iluwatar/SpaceStationIss.java @@ -0,0 +1,8 @@ +package com.iluwatar; + +public class SpaceStationIss extends SpaceStationMir { + + public SpaceStationIss(int left, int top, int right, int bottom) { + super(left, top, right, bottom); + } +} diff --git a/double-dispatch/src/main/java/com/iluwatar/SpaceStationMir.java b/double-dispatch/src/main/java/com/iluwatar/SpaceStationMir.java new file mode 100644 index 000000000..9d630cf5c --- /dev/null +++ b/double-dispatch/src/main/java/com/iluwatar/SpaceStationMir.java @@ -0,0 +1,8 @@ +package com.iluwatar; + +public class SpaceStationMir extends GameObject { + + public SpaceStationMir(int left, int top, int right, int bottom) { + super(left, top, right, bottom); + } +}