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

FireFactory.java

Blame
  • Forked from COUETOUX Basile / FirefighterStarter
    63 commits ahead of the upstream repository.
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    FireFactory.java 1.38 KiB
    package model;
    
    import util.Position;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Random;
    
    public class FireFactory {
        private final Random random;
    
        public FireFactory(Random random) {
            this.random = random; // Injecte un générateur aléatoire pour une flexibilité.
        }
    
        /**
         * Crée une liste de feux avec des positions et intensités aléatoires.
         *
         * @param count      Le nombre de feux à générer.
         * @param rowCount   Nombre de lignes du plateau.
         * @param columnCount Nombre de colonnes du plateau.
    
         * @return Une liste d'objets `Fire`.
         */
        public List<Fire> createFires(int count, int rowCount, int columnCount) {
            List<Fire> fires = new ArrayList<>();
            for (int i = 0; i < count; i++) {
                Position randomPosition = generateRandomPosition(rowCount, columnCount);
                boolean add = fires.add(new Fire(randomPosition));
            }
            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.
         */
        private Position generateRandomPosition(int rowCount, int columnCount) {
            int row = random.nextInt(rowCount);
            int column = random.nextInt(columnCount);
            return new Position(row, column);
        }
    }