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

Scenario.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.
    Fire.java 1.20 KiB
    package model;
    
    import util.Position;
    
    import java.util.*;
    
    public class Fire {
        private static Set<Position> firePositions;
        private static Map<Position, List<Position>> neighbors;
    
        public Fire(Set<Position> firePositions, Map<Position, List<Position>> neighbors) {
            this.firePositions = firePositions;
            this.neighbors = neighbors;
        }
    
    
        public Position getPosition(){
            return firePositions.iterator().next();
        }
    
        public void setPosition(Position p){
            this.firePositions.add(p);
        }
    
        public static Set<Position> getFirePositions() {
            return firePositions;
        }
    
        public static List<Position> spreadFire(Set<Position> mountains) {
            List<Position> newFires = new ArrayList<>();
            for (Position firePosition : firePositions) {
                for (Position neighbor : neighbors.get(firePosition)) {
                    if (!mountains.contains(neighbor) && !firePositions.contains(neighbor)) {
                        newFires.add(neighbor);
                    }
                }
            }
            firePositions.addAll(newFires);
            return newFires;
        }
    
        public static void extinguishFire(Position neighbor) {
            firePositions.remove(neighbor);
        }
    }