package model; import util.Position; import java.util.ArrayList; import java.util.List; import java.util.Random; public class FireFactory implements ElementFactory<Fire>,PositionGenerator{ private final Random random; private int count; public FireFactory(Random random, int count) { this.random = random; // Injecte un générateur aléatoire pour une flexibilité. this.count=count; } /** * 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) { List<Fire> fires = new ArrayList<>(); for (int i = 0; i < count; i++) { Position randomPosition = generateRandomPosition(rowCount, columnCount); boolean add = fires.add(new Fire(randomPosition)); } System.out.println(fires.size()); 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) { int row = random.nextInt(rowCount); int column = random.nextInt(columnCount); return new Position(row, column); } public int getCount() { return count; } }