Skip to content
Snippets Groups Projects
Cloud.java 1.34 KiB
Newer Older
  • Learn to ignore specific revisions
  • package model;
    
    import util.Position;
    import java.util.List;
    import java.util.Random;
    import java.util.Set;
    
    public class Cloud {
        private List<Position> positions;
    
        public Cloud(List<Position> initialPositions) {
            this.positions = initialPositions;
        }
    
        /**
         * Déplace chaque nuage vers une position aléatoire parmi les positions possibles.
         *
         * @param possiblePositions Ensemble des positions possibles.
         * @return Liste des nouvelles positions des nuages.
         */
        public List<Position> moveRandomly(Set<Position> possiblePositions) {
            Random random = new Random();
            for (int i = 0; i < positions.size(); i++) {
                // Choisir une position aléatoire dans l'ensemble des positions possibles
                Position newPosition = possiblePositions.stream()
                        .skip(random.nextInt(possiblePositions.size()))
                        .findFirst()
                        .orElse(positions.get(i));
                positions.set(i, newPosition);
            }
            return positions;
        }
    
        /**
         * Éteint les feux situés sur les positions occupées par les nuages.
         *
         * @param fire L'objet Fire à modifier.
         */
        public void extinguishFire(Fire fire) {
            positions.forEach(fire::extinguish);
        }
    
        public List<Position> getPositions() {
            return positions;
        }
    }