diff --git a/src/main/java/model/FireFighter.java b/src/main/java/model/FireFighter.java index 96ccf72945b1500d319e723865aa3870ee105350..4b9866d7a9e3bd464100ae5825c0f21a2f2401c5 100644 --- a/src/main/java/model/FireFighter.java +++ b/src/main/java/model/FireFighter.java @@ -13,10 +13,10 @@ public class FireFighter { } - public void setFirefighterPositions(Position firefighterPositions) { + public void setFirefighterPosition(Position firefighterPositions) { this.firefighterPositions = firefighterPositions; } - public Position getFirefighterPositions() { + public Position getFirefighterPosition() { return firefighterPositions; } } diff --git a/src/main/java/model/FirefighterBoard.java b/src/main/java/model/FirefighterBoard.java index b0f46a915b51ad68f585dc6ca9dd830a6e9005e5..4c674b7a39c1e96868b79a39cc670e2bfd49bddb 100644 --- a/src/main/java/model/FirefighterBoard.java +++ b/src/main/java/model/FirefighterBoard.java @@ -1,6 +1,7 @@ package model; import util.Position; +import util.TargetStrategy; import java.util.*; @@ -56,10 +57,12 @@ public class FirefighterBoard implements Board<List<ModelElement>> { public List<ModelElement> getState(Position position) { List<ModelElement> result = new ArrayList<>(); for (FireFighter firefighter : firefighter) - if (firefighter.getFirefighterPositions().equals(position)) + if (firefighter.getFirefighterPosition().equals(position)) result.add(ModelElement.FIREFIGHTER); - if (fire.contains(position)) - result.add(ModelElement.FIRE); + + for (Fire fire: fire) + if (fire.getFirePositions().equals(position)) + result.add(ModelElement.FIRE); return result; } @@ -84,10 +87,12 @@ public class FirefighterBoard implements Board<List<ModelElement>> { List<Position> modifiedPositions = new ArrayList<>(); if (step % 2 == 0) { List<Position> newFirePositions = new ArrayList<>(); - for (Position fire : firePositions) { + for (Fire fire : fire) { newFirePositions.addAll(neighbors.get(fire)); } - firePositions.addAll(newFirePositions); + for(Position position : newFirePositions) { + fire.add(new Fire(position)); + } modifiedPositions.addAll(newFirePositions); } return modifiedPositions; @@ -102,7 +107,7 @@ public class FirefighterBoard implements Board<List<ModelElement>> { private List<Position> updateFirefighters() { List<Position> modifiedPosition = new ArrayList<>(); List<Position> firefighterNewPositions = new ArrayList<>(); - for (Position firefighterPosition : firefighterPositions) { + for (FireFighter firefighterPosition : firefighter) { Position newFirefighterPosition = targetStrategy.neighborClosestToFire(firefighterPosition, firePositions, neighbors); diff --git a/src/main/java/util/TargetStrategy.java b/src/main/java/util/TargetStrategy.java index 583186787d4d8d47173fbe61cc424f2f7ee384c9..071869cfe268ffb832b1568abaad12c2947f12e6 100644 --- a/src/main/java/util/TargetStrategy.java +++ b/src/main/java/util/TargetStrategy.java @@ -1,4 +1,4 @@ -package model; +package util; import util.Position;