diff --git a/src/main/java/model/Board.java b/src/main/java/model/Board.java index f5686246697e6c6f4339e6b2be9bc4e99008b0e8..17d28ba0cb02f399f6261c2efae6200fc8de33cd 100644 --- a/src/main/java/model/Board.java +++ b/src/main/java/model/Board.java @@ -36,7 +36,7 @@ public interface Board<S> { Map<Position, Extinguisher> getExtinguishers(); Map<Position, Fire> getFires(); - Neighbour getNeighbor(); + /** diff --git a/src/main/java/model/Cloud.java b/src/main/java/model/Cloud.java index c11fd8bcfd1c9a3ca572aa70b0777ff95adcb81e..b61a5a4e07894e6a57e737552867e59ead2095f2 100644 --- a/src/main/java/model/Cloud.java +++ b/src/main/java/model/Cloud.java @@ -1,5 +1,6 @@ package model; +import util.Neighbour; import util.Position; import java.util.ArrayList; @@ -14,10 +15,12 @@ public class Cloud extends Extinguisher { } public List<Position>update(Board<List<ModelElement>> firefighterBoard){ + + this.neighbour = new Neighbour(firefighterBoard); List<Position> modifiedPositions = new ArrayList<>(); Position currentPosition = this.getPosition(); - Position newPosition = firefighterBoard.getNeighbor().randomNeighbor(currentPosition); + Position newPosition = this.neighbour.randomNeighbor(currentPosition); this.setPosition(newPosition); modifiedPositions.add(currentPosition); modifiedPositions.add(newPosition); diff --git a/src/main/java/model/Extinguisher.java b/src/main/java/model/Extinguisher.java index 9c7904801936be7e3e13695d0054f30e45d81802..4983ad2f2c6f745850b6c2417e242bff742008a0 100644 --- a/src/main/java/model/Extinguisher.java +++ b/src/main/java/model/Extinguisher.java @@ -1,10 +1,12 @@ package model; +import util.Neighbour; import util.Position; import java.util.List; public abstract class Extinguisher implements Element{ + protected Neighbour neighbour; protected Position position; protected ModelElement element; diff --git a/src/main/java/model/FireFighter.java b/src/main/java/model/FireFighter.java index 0eb1614946e20f1f29e2d77bbee12279057d4765..f07b2f8108812830c9fd5815d69495b99977517c 100644 --- a/src/main/java/model/FireFighter.java +++ b/src/main/java/model/FireFighter.java @@ -5,14 +5,13 @@ import util.Position; import util.TargetStrategy; import java.util.ArrayList; -import java.util.HashMap; + import java.util.List; -import java.util.Map; + public class FireFighter extends Extinguisher { - private Neighbour neighbour; private final TargetStrategy targetStrategy = new TargetStrategy(); diff --git a/src/main/java/model/FirefighterBoard.java b/src/main/java/model/FirefighterBoard.java index 0b31a0103ee91f034ac75401760e9b087b56859b..74c43387c4d0fa7b01aced010a5fe715477f7fed 100644 --- a/src/main/java/model/FirefighterBoard.java +++ b/src/main/java/model/FirefighterBoard.java @@ -1,6 +1,5 @@ package model; -import util.Neighbour; import util.Position; import java.util.*; @@ -12,16 +11,17 @@ public class FirefighterBoard implements Board<List<ModelElement>> { private Map<Position, Fire> fires = new HashMap<>(); private Map<Position, Extinguisher> extinguishers = new HashMap<>(); private Map<Position, Obstacle> obstacles = new HashMap<>(); - private final Neighbour neighbour; + private final Position[][] positions; private int step = 0; private final Random randomGenerator = new Random(); + public FirefighterBoard(int columnCount, int rowCount) { this.columnCount = columnCount; this.rowCount = rowCount; this.positions = new Position[rowCount][columnCount]; - this.neighbour = new Neighbour(this); + initializePositions(); initializeElements(); } @@ -85,8 +85,6 @@ public class FirefighterBoard implements Board<List<ModelElement>> { return columnCount; } - - public List<Position> updateToNextGeneration() { Fire fire = new Fire(randomPosition()); @@ -101,11 +99,6 @@ public class FirefighterBoard implements Board<List<ModelElement>> { return modifiedPositions; } - - public Neighbour getNeighbor() { - return neighbour; - } - @Override public int stepNumber() { return step; @@ -131,7 +124,6 @@ public class FirefighterBoard implements Board<List<ModelElement>> { initializeElements(); } - @Override public void setState(List<ModelElement> state, Position position) {