From 727f119386feb2f4422dc6d3b327ad671df52372 Mon Sep 17 00:00:00 2001
From: a23022716 <celia.arezki.1@etu.univ-amu.fr>
Date: Thu, 28 Nov 2024 12:33:24 +0100
Subject: [PATCH] create FireFactory class

---
 src/main/java/model/FireFactory.java | 46 ++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)
 create mode 100644 src/main/java/model/FireFactory.java

diff --git a/src/main/java/model/FireFactory.java b/src/main/java/model/FireFactory.java
new file mode 100644
index 0000000..4e33294
--- /dev/null
+++ b/src/main/java/model/FireFactory.java
@@ -0,0 +1,46 @@
+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);
+    }
+}
-- 
GitLab