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

Cloud.java

Blame
  • Forked from COUETOUX Basile / FirefighterStarter
    43 commits ahead of the upstream repository.
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    Cloud.java 1.20 KiB
    package model;
    
    import util.Position;
    
    import java.util.*;
    
    public class Cloud {
        private Position position;
        private final Map<Position, List<Position>> neighbors;
        private final Random randomGenerator = new Random();
    
        public Cloud(Position startPosition, Map<Position, List<Position>> neighbors) {
            this.position = startPosition;
            this.neighbors = neighbors;
        }
    
        public void move() {
            List<Position> validNeighbors = neighbors.get(position);
                this.position = validNeighbors.get(randomGenerator.nextInt(validNeighbors.size()));
        }
    
        public void extinguishSurroundingFires(Fire fire) {
            for (Position neighbor : neighbors.get(position)) {
                fire.extinguishFire(neighbor); // Éteint les feux adjacents
            }
        }
    
        public Position getPosition() {
            return position;
        }
    
        public void protectFromFire(Fire fire) {
            fire.getFirePositions().remove(position);
        }
    
        public void extinguishSurroundingFires(Set<Position> firePositions, Map<Position, List<Position>> neighbors) {
            for (Position neighbor : neighbors.get(position)) {
                Fire.extinguishFire(neighbor); // Éteint les feux adjacents
            }
        }
    }