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

FirefighterApplication.java

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    Fires.java 1.51 KiB
    package model;
    
    import util.Position;
    
    import java.util.*;
    
    public class Fires extends BoardMethods implements ModelElement {
    
        private Set<Position> firePositions;
    
        private int step;
    
    
        public Fires() {
        }
    
        public void add(Position newPositions){
            firePositions.add(newPositions);
        }
    
        public Set<Position> getFirePositions() {
            return firePositions;
        }
    
        public List<Position> updateFires(Montains montains, Roads roads) {
            List<Position> result = new ArrayList<>();
            if (step % 2 == 0) {
                List<Position> newFirePositions = new ArrayList<>();
                for (Position fire : firePositions) {
                    List<Position> neighbors= neighbors(fire);
                    for (Position position : neighbors){
                        if(!montains.getMontainsPositions().contains(position) || !roads.getRoadsPositions().contains(position))
                            newFirePositions.add(position);
                    }
                }
                firePositions.addAll(newFirePositions);
                result.addAll(newFirePositions);
            }
            return result;
    
        }
    
        public void incrementStep(){
            this.step ++;
        }
    
        public void initializeElements(int initialFireCount, int rowCount, int columnCount) {
            //this.step=step;
            this.columnCount = columnCount;
            this.rowCount = rowCount;
            firePositions = new HashSet<>();
            for (int index = 0; index < initialFireCount; index++)
                firePositions.add(randomPosition());
        }
    
    
    
    
    }