Skip to content
Snippets Groups Projects
Select Git revision
  • 0e6bc2859d6ee7a437503fc30f7bea20e322c26f
  • main default protected
  • melissa
  • yanis
  • variant
5 results

SimulatorApplication.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.
    BoardFireFighterBehavior.java 7.46 KiB
    package model;
    
    import util.Position;
    import util.TargetStrategy;
    
    import java.util.*;
    
    public class BoardFireFighterBehavior implements BoardBehavior{
        private static TargetStrategy targetStrategy = new TargetStrategy();
        private static Map<Position, List<Position>> neighbors;
    
        private static List<Position> rocky;
    
        private ElementFactory<Rocky> rockyFactory;
        private static  Map<Position, Terrain> terrainMap = new HashMap<>();
        private static int step;
        static Movements fireMovements ;
        static Movements fireFighterMovements;
        static Movements cloudMovements;
        static Movements motorizedMovements;
        private ElementGenerator moutainGenerator;
    
        public BoardFireFighterBehavior(Map<Position, List<Position>> neighbors, ElementFactory<Fire> fireFactory ,ElementFactory<FireFighter> firefighterFactory,
                                        ElementFactory<Cloud> cloudFactory,ElementFactory<MotorizedFireFighter> motorizedFactory,ElementFactory<Rocky> rockyFactory) {
            this.step=0;
            this.neighbors = neighbors;
            this.rockyFactory=rockyFactory;
            fireMovements=new FireMovements(fireFactory);
            fireFighterMovements=new FireFighterMovements(firefighterFactory);
            cloudMovements=new CloudMovements(cloudFactory);
            motorizedMovements=new MotorizedMovements(motorizedFactory);
            moutainGenerator=new MountainGenerator();
        }
    
        public void initializeElements(int rowCount, int columnCount) {
             fireMovements.initializeElement(rowCount,columnCount);
             fireFighterMovements.initializeElement(rowCount,columnCount);
             cloudMovements.initializeElement(rowCount,columnCount);
            // Pompiers motorisés
            motorizedMovements.initializeElement(rowCount,columnCount);
            // Rocky
            rocky = new ArrayList<>();
            List<Rocky> rockies = rockyFactory.createElements(rowCount, columnCount);
            for (Rocky rockyElement : rockies) {
                rocky.add(rockyElement.getPosition());
            }
    
            moutainGenerator.generateElement(rowCount,columnCount);
            generateRoads(rowCount,columnCount);
    
        }
    
    
    
    
    
        public static void extinguish(Position position) {
            fireMovements.getPositions().remove(position);
    
    
        }
    
    
    
        public Set<Position> getFirePositions() {
            return (Set<Position>) fireMovements.getPositions();
        }