Skip to content
Snippets Groups Projects
FireFactory.java 1.53 KiB
Newer Older
  • Learn to ignore specific revisions
  • AREZKI Celia's avatar
    AREZKI Celia committed
    package model;
    
    import util.Position;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Random;
    
    
    public class FireFactory implements ElementFactory<Fire>,PositionGenerator{
    
    AREZKI Celia's avatar
    AREZKI Celia committed
        private final Random random;
    
        private int count;
    
        public FireFactory(Random random, int count) {
    
    AREZKI Celia's avatar
    AREZKI Celia committed
            this.random = random; // Injecte un générateur aléatoire pour une flexibilité.
    
            this.count=count;
    
    AREZKI Celia's avatar
    AREZKI Celia committed
        }
    
        /**
         * Crée une liste de feux avec des positions et intensités aléatoires.
         *
         * @param rowCount   Nombre de lignes du plateau.
         * @param columnCount Nombre de colonnes du plateau.
    
         * @return Une liste d'objets `Fire`.
         */
    
        public List<Fire> createElements(int rowCount, int columnCount) {
    
    AREZKI Celia's avatar
    AREZKI Celia committed
            List<Fire> fires = new ArrayList<>();
            for (int i = 0; i < count; i++) {
                Position randomPosition = generateRandomPosition(rowCount, columnCount);
    
                boolean add = fires.add(new Fire(randomPosition));
    
    AREZKI Celia's avatar
    AREZKI Celia committed
            }
    
            System.out.println(fires.size());
    
    AREZKI Celia's avatar
    AREZKI Celia committed
            return fires;
        }
    
        /**
         * Génère une position aléatoire sur le plateau.
         *
         * @param rowCount   Nombre de lignes.
         * @param columnCount Nombre de colonnes.
         * @return Une position aléatoire.
         */
    
        @Override
        public Position generateRandomPosition(int rowCount, int columnCount) {
    
    AREZKI Celia's avatar
    AREZKI Celia committed
            int row = random.nextInt(rowCount);
            int column = random.nextInt(columnCount);
            return new Position(row, column);
        }
    
    
        public int getCount() {
            return count;
        }
    
    AREZKI Celia's avatar
    AREZKI Celia committed
    }