Skip to content
Snippets Groups Projects
Fire.java 1.2 KiB
Newer Older
  • Learn to ignore specific revisions
  • package model;
    
    import util.Position;
    
    
    ousseyn01's avatar
    ousseyn01 committed
    import java.util.*;
    
    
    public class Fire {
    
    ousseyn01's avatar
    ousseyn01 committed
        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;
        }
    
    
    ousseyn01's avatar
    ousseyn01 committed
    
        public Position getPosition(){
            return firePositions.iterator().next();
        }
    
        public void setPosition(Position p){
            this.firePositions.add(p);
        }
    
        public static Set<Position> getFirePositions() {
    
            return firePositions;
        }
    
    
    ousseyn01's avatar
    ousseyn01 committed
        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;
    
    ousseyn01's avatar
    ousseyn01 committed
    
    
    ousseyn01's avatar
    ousseyn01 committed
        public static void extinguishFire(Position neighbor) {
    
    ousseyn01's avatar
    ousseyn01 committed
            firePositions.remove(neighbor);
        }