Skip to content
Snippets Groups Projects
FirefighterManager.java 1.69 KiB
Newer Older
  • Learn to ignore specific revisions
  • package model;
    
    import util.Position;
    
    import java.util.*;
    
    public class FirefighterManager {
    
    CHAHINE Rami's avatar
    .  
    CHAHINE Rami committed
        private List<Position> firefighterPositions;
        private FirefighterMovementStrategy movementStrategy;
    
    CHAHINE Rami's avatar
    .  
    CHAHINE Rami committed
        public FirefighterManager(FirefighterMovementStrategy movementStrategy) {
            this.movementStrategy = movementStrategy;
            firefighterPositions = new ArrayList<>();
    
    CHAHINE Rami's avatar
    .  
    CHAHINE Rami committed
    
    
        public void initializeFireFightersPositions(int count, int rowCount, int columnCount, Random random) {
    
    CHAHINE Rami's avatar
    .  
    CHAHINE Rami committed
            // Initialize firefighter positions randomly on the grid
    
            for (int i = 0; i < count; i++) {
    
    Chadi's avatar
    Chadi committed
                firefighterPositions.add(new Position(random.nextInt(rowCount), random.nextInt(columnCount)));
    
    CHAHINE Rami's avatar
    .  
    CHAHINE Rami committed
    
    
        public List<Position> moveFireFighters(Set<Position> firePositions, Map<Position, List<Position>> neighbors,List<Position> firefighterPositions) {
    
            List<Position> modifiedPositions = new ArrayList<>();
    
    CHAHINE Rami's avatar
    .  
    CHAHINE Rami committed
            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);
    
    
    CHAHINE Rami's avatar
    .  
    CHAHINE Rami committed
    
    
                // Update the firefighter's new position
    
    CHAHINE Rami's avatar
    .  
    CHAHINE Rami committed
                modifiedPositions.add(newPosition);  // Track the new firefighter position
    
            firefighterPositions.clear();
            firefighterPositions = modifiedPositions;  // Update the firefighter positions list with new positions
    
            return modifiedPositions;
        }
    
    CHAHINE Rami's avatar
    .  
    CHAHINE Rami committed
    
    
    Chadi's avatar
    Chadi committed
        public List<Position> getFirefighterPositions() {
            return firefighterPositions;
    
    CHAHINE Rami's avatar
    .  
    CHAHINE Rami committed