Skip to content
Snippets Groups Projects
Fire.java 1.51 KiB
Newer Older
  • Learn to ignore specific revisions
  • package model;
    
    import util.Position;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;
    
    public class Fire {
        private Set<Position> firePositions;
        private Map<Position, List<Position>> neighbors;
    
    ousseyn01's avatar
    ousseyn01 committed
      //  private int step =0;
    
    
        public Fire(Set<Position> firePositions, Map<Position, List<Position>> neighbors) {
            this.firePositions = firePositions;
            this.neighbors = neighbors;
        }
    
        public Set<Position> getFirePositions() {
            return firePositions;
        }
    
    
        /*public List<Position> spreadFire() {
    
            List<Position> modifiedPositions = new ArrayList<>();
    
    ousseyn01's avatar
    ousseyn01 committed
    
    
            List<Position> newFirePositions = new ArrayList<>();
            for (Position fire : firePositions) {
                newFirePositions.addAll(neighbors.get(fire));
            }
            firePositions.addAll(newFirePositions);
            modifiedPositions.addAll(newFirePositions);
            return newFirePositions;
    
        }*/
        public 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
    
        public void extinguishFire(Position neighbor) {
            firePositions.remove(neighbor);
        }