Select Git revision
FirefighterManager.java
Forked from
COUETOUX Basile / FirefighterStarter
Source project has a limited visibility.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
FirefighterManager.java 1.69 KiB
package model;
import util.Position;
import java.util.*;
public class FirefighterManager {
private List<Position> firefighterPositions;
private FirefighterMovementStrategy movementStrategy;
public FirefighterManager(FirefighterMovementStrategy movementStrategy) {
this.movementStrategy = movementStrategy;
firefighterPositions = new ArrayList<>();
}
public void initializeFireFightersPositions(int count, int rowCount, int columnCount, Random random) {
// Initialize firefighter positions randomly on the grid
for (int i = 0; i < count; i++) {
firefighterPositions.add(new Position(random.nextInt(rowCount), random.nextInt(columnCount)));
}
}
public List<Position> moveFireFighters(Set<Position> firePositions, Map<Position, List<Position>> neighbors,List<Position> firefighterPositions) {
List<Position> modifiedPositions = new ArrayList<>();
for (Position firefighterPosition : firefighterPositions) {
// Move firefighters towards the nearest fire
Position newPosition = movementStrategy.moveToClosestFire(firefighterPosition, firePositions, neighbors);
System.out.println(newPosition);
System.out.println(firefighterPosition);
// Update the firefighter's new position
modifiedPositions.add(newPosition); // Track the new firefighter position
}
firefighterPositions.clear();
firefighterPositions = modifiedPositions; // Update the firefighter positions list with new positions
return modifiedPositions;
}
public List<Position> getFirefighterPositions() {
return firefighterPositions;
}
}