Skip to content

Commit fba664b

Browse files
committed
Added iteration logic.
1 parent 41b8187 commit fba664b

File tree

5 files changed

+44
-9
lines changed

5 files changed

+44
-9
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,16 @@
11
package com.iluwatar;
22

3+
import java.util.ArrayList;
4+
import java.util.List;
5+
36
public class App {
47

58
public static void main( String[] args ) {
9+
List<GameObject> objects = new ArrayList<>();
10+
objects.add(new FlamingAsteroid(0, 0, 5, 5));
11+
objects.add(new SpaceStationMir(1, 1, 4, 4));
12+
objects.add(new Meteoroid(10, 10, 15, 15));
13+
objects.add(new SpaceStationIss(12, 11, 14, 15));
14+
objects.stream().forEach(o1 -> objects.stream().forEach(o2 -> { if (o1 != o2) System.out.println(String.format("%s -> %s", o1, o2)); } ));
615
}
716
}

double-dispatch/src/main/java/com/iluwatar/Asteroid.java

Lines changed: 0 additions & 8 deletions
This file was deleted.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.iluwatar;
2+
3+
public class FlamingAsteroid extends Meteoroid {
4+
5+
public FlamingAsteroid(int left, int top, int right, int bottom) {
6+
super(left, top, right, bottom);
7+
setOnFire(true);
8+
}
9+
}

double-dispatch/src/main/java/com/iluwatar/GameObject.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,32 @@
22

33
public abstract class GameObject extends Rectangle {
44

5+
private boolean damaged;
6+
private boolean onFire;
7+
58
public GameObject(int left, int top, int right, int bottom) {
69
super(left, top, right, bottom);
710
}
811

912
@Override
1013
public String toString() {
11-
return this.getClass().getSimpleName();
14+
return String.format("%s at %s damaged=%b onFire=%b", this.getClass().getSimpleName(),
15+
super.toString(), isDamaged(), isOnFire());
16+
}
17+
18+
public boolean isOnFire() {
19+
return onFire;
20+
}
21+
22+
public void setOnFire(boolean onFire) {
23+
this.onFire = onFire;
24+
}
25+
26+
public boolean isDamaged() {
27+
return damaged;
28+
}
29+
30+
public void setDamaged(boolean damaged) {
31+
this.damaged = damaged;
1232
}
1333
}

double-dispatch/src/main/java/com/iluwatar/Rectangle.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,9 @@ public int getBottom() {
3030
boolean intersectsWith(Rectangle r) {
3131
return !(r.getLeft() > getRight() || r.getRight() < getLeft() || r.getTop() > getBottom() || r.getBottom() < getTop());
3232
}
33+
34+
@Override
35+
public String toString() {
36+
return String.format("[%d,%d,%d,%d]", getLeft(), getTop(), getRight(), getBottom());
37+
}
3338
}

0 commit comments

Comments
 (0)