Skip to content
Snippets Groups Projects
Select Git revision
  • d7791947ce58fee2cf90bcb3972d430b8babae8f
  • main default protected
  • variant
3 results

FirefighterManager.java

Blame
  • 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;
        }
    }