diff --git a/src/main/java/model/FireManager.java b/src/main/java/model/FireManager.java index 8f524037bac946ac58ccdb8b675c2a8a5ba33a40..1cf519d2bb5d589237e4d6d63fa3a14c41c4891a 100644 --- a/src/main/java/model/FireManager.java +++ b/src/main/java/model/FireManager.java @@ -4,19 +4,21 @@ import util.Position; import java.util.*; -public class FireManager { +public class FireManager implements FireBehavior, FireProperties{ private Set<Position> firePositions; public FireManager(Set<Position> firePositions) { this.firePositions = firePositions; } // Initialize fire positions randomly + public void initializeFires(int fireCount, int rowCount, int columnCount, Random random) { firePositions.clear(); for (int i = 0; i < fireCount; i++) { firePositions.add(new Position(random.nextInt(rowCount), random.nextInt(columnCount))); } } + @Override public List<Position> updateFires(int step, Map<Position, List<Position>> neighbors) { List<Position> newFirePositions = new ArrayList<>(); if (step % 2 == 0) { // Fires spread every other step @@ -32,6 +34,7 @@ public class FireManager { return newFirePositions; } // Extinguish a fire at a specific position + @Override public void extinguishFire(Position position) { firePositions.remove(position); } diff --git a/src/main/java/model/FireProperties.java b/src/main/java/model/FireProperties.java index b82f3df95facb83815d5a98c6828c022d06b2aaa..6be12e9ea0cd40ff202a81a281bede67200d6797 100644 --- a/src/main/java/model/FireProperties.java +++ b/src/main/java/model/FireProperties.java @@ -1,4 +1,7 @@ package model; +import util.Position; + public interface FireProperties { + public boolean isOnFire(Position position); }