Skip to content
Snippets Groups Projects
Select Git revision
  • 31ed353ae60f1d6a39d531ceb5da7a98a6114730
  • main default protected
  • correction_video
  • going_further
  • ImprovedMouseInteraction
  • final2023
  • template
  • ModifGUI
8 results

GridIterator.java

Blame
  • Forked from YAGOUBI Rim / Game of life Template
    Source project has a limited visibility.
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    Fire.java 1.51 KiB
    package model;
    
    import util.Position;
    
    import java.util.*;
    
    
    public class Fire implements Element {
    
        private Position position;
    
    
        private ModelElement modelElement = ModelElement.FIRE;
    
    
        public Fire(Position position){
            this.position = position;
        }
    
    
        public Position getPosition() {
            return position;
        }
    
        @Override
        public ModelElement getElement() {
            return modelElement;
        }
    
        public void setPosition(Position position) {
            this.position = position;
        }
    
    
        public List<Position> update(FirefighterBoard firefighterBoard) {
            List<Position> modifiedPositions = new ArrayList<>();
            Map<Position, List<Position>> neighbors = firefighterBoard.getNeighbors();
    
            // Étendre le feu seulement à chaque étape paire
            if (firefighterBoard.stepNumber() % 2 == 0) {
                List<Position> neighborPositions = neighbors.get(this.getPosition());
                for (Position position : neighborPositions) {
                    if (!(firefighterBoard.getState(position).contains(modelElement))) {
                        // Ajouter un nouveau feu directement dans la liste des éléments
                        firefighterBoard.getElements().add(new Fire(position));
                    }
                    // Marquer la position comme modifiée
                    modifiedPositions.add(position);
                }
            }
            return modifiedPositions;
        }
    
        public boolean contains(List<Position> positions) {
            return positions.contains(this.getPosition());
    
        }
    
    
    
    
    }