From 9d23ba4070079e1384d8738d17ef651d5071d502 Mon Sep 17 00:00:00 2001
From: badrr <badr.radellah@etu.univ-amu.fr>
Date: Sat, 9 Nov 2024 17:58:22 +0100
Subject: [PATCH] =?UTF-8?q?Lors=20de=20cette=20premi=C3=A8re=20s=C3=A9ance?=
 =?UTF-8?q?,=20j'ai=20travaill=C3=A9=20sur=20la=20refactorisation=20du=20c?=
 =?UTF-8?q?ode=20existant=20en=20d=C3=A9l=C3=A9guant=20les=20responsabilit?=
 =?UTF-8?q?=C3=A9s=20des=20pompiers=20et=20des=20feux=20=C3=A0=20des=20cla?=
 =?UTF-8?q?sses=20s=C3=A9par=C3=A9es=20(Firefighter=20et=20Fire).=20J'ai?=
 =?UTF-8?q?=20=C3=A9galement=20am=C3=A9lior=C3=A9=20l'architecture=20du=20?=
 =?UTF-8?q?code=20en=20isolant=20mieux=20la=20logique=20de=20gestion=20des?=
 =?UTF-8?q?=20feux=20et=20des=20pompiers=20dans=20leurs=20propres=20classe?=
 =?UTF-8?q?s=20respectives,=20afin=20de=20rendre=20le=20code=20plus=20modu?=
 =?UTF-8?q?laire=20et=20conforme=20aux=20principes=20SOLID,=20notamment=20?=
 =?UTF-8?q?le=20principe=20de=20responsabilit=C3=A9=20unique.=20Pour=20la?=
 =?UTF-8?q?=20prochaine=20s=C3=A9ance=20e=20pr=C3=A9parerai=20=C3=A9galeme?=
 =?UTF-8?q?nt=20un=20diagramme=20de=20classe=20d=C3=A9taillant=20l'organis?=
 =?UTF-8?q?ation=20actuelle=20du=20code=20et=20Impl=C3=A9mentation=20des?=
 =?UTF-8?q?=20nuages=20mobiles=20qui=20=C3=A9teignent=20les=20feux?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .gradle/8.10.2/checksums/checksums.lock       | Bin 0 -> 17 bytes
 .../dependencies-accessors/gc.properties      |   0
 .../executionHistory/executionHistory.lock    | Bin 0 -> 17 bytes
 .gradle/8.10.2/fileChanges/last-build.bin     | Bin 0 -> 1 bytes
 .gradle/8.10.2/fileHashes/fileHashes.lock     | Bin 0 -> 17 bytes
 .gradle/8.10.2/gc.properties                  |   0
 .gradle/8.8/checksums/checksums.lock          | Bin 0 -> 17 bytes
 .../8.8/dependencies-accessors/gc.properties  |   0
 .../8.8/executionHistory/executionHistory.bin | Bin 0 -> 19652 bytes
 .../executionHistory/executionHistory.lock    | Bin 0 -> 17 bytes
 .gradle/8.8/fileChanges/last-build.bin        | Bin 0 -> 1 bytes
 .gradle/8.8/fileHashes/fileHashes.bin         | Bin 0 -> 18697 bytes
 .gradle/8.8/fileHashes/fileHashes.lock        | Bin 0 -> 17 bytes
 .gradle/8.8/gc.properties                     |   0
 .../buildOutputCleanup.lock                   | Bin 0 -> 17 bytes
 .gradle/buildOutputCleanup/cache.properties   |   2 +
 .gradle/vcs-1/gc.properties                   |   0
 src/main/java/model/Fire.java                 |  29 ++++++++++++++
 src/main/java/model/Firefighter.java          |  37 ++++++++++++++++++
 19 files changed, 68 insertions(+)
 create mode 100644 .gradle/8.10.2/checksums/checksums.lock
 create mode 100644 .gradle/8.10.2/dependencies-accessors/gc.properties
 create mode 100644 .gradle/8.10.2/executionHistory/executionHistory.lock
 create mode 100644 .gradle/8.10.2/fileChanges/last-build.bin
 create mode 100644 .gradle/8.10.2/fileHashes/fileHashes.lock
 create mode 100644 .gradle/8.10.2/gc.properties
 create mode 100644 .gradle/8.8/checksums/checksums.lock
 create mode 100644 .gradle/8.8/dependencies-accessors/gc.properties
 create mode 100644 .gradle/8.8/executionHistory/executionHistory.bin
 create mode 100644 .gradle/8.8/executionHistory/executionHistory.lock
 create mode 100644 .gradle/8.8/fileChanges/last-build.bin
 create mode 100644 .gradle/8.8/fileHashes/fileHashes.bin
 create mode 100644 .gradle/8.8/fileHashes/fileHashes.lock
 create mode 100644 .gradle/8.8/gc.properties
 create mode 100644 .gradle/buildOutputCleanup/buildOutputCleanup.lock
 create mode 100644 .gradle/buildOutputCleanup/cache.properties
 create mode 100644 .gradle/vcs-1/gc.properties
 create mode 100644 src/main/java/model/Fire.java
 create mode 100644 src/main/java/model/Firefighter.java

diff --git a/.gradle/8.10.2/checksums/checksums.lock b/.gradle/8.10.2/checksums/checksums.lock
new file mode 100644
index 0000000000000000000000000000000000000000..362bc68d8a750d6cb2e379d339d81337182066e7
GIT binary patch
literal 17
ScmZSP`CnzYl+V1I0SW*peFHB5

literal 0
HcmV?d00001

diff --git a/.gradle/8.10.2/dependencies-accessors/gc.properties b/.gradle/8.10.2/dependencies-accessors/gc.properties
new file mode 100644
index 0000000..e69de29
diff --git a/.gradle/8.10.2/executionHistory/executionHistory.lock b/.gradle/8.10.2/executionHistory/executionHistory.lock
new file mode 100644
index 0000000000000000000000000000000000000000..66d287d3b823619b05e3e0405201e0476d56d0bb
GIT binary patch
literal 17
TcmZR+l_mROZDjon1}FdkI2{CX

literal 0
HcmV?d00001

diff --git a/.gradle/8.10.2/fileChanges/last-build.bin b/.gradle/8.10.2/fileChanges/last-build.bin
new file mode 100644
index 0000000000000000000000000000000000000000..f76dd238ade08917e6712764a16a22005a50573d
GIT binary patch
literal 1
IcmZPo000310RR91

literal 0
HcmV?d00001

diff --git a/.gradle/8.10.2/fileHashes/fileHashes.lock b/.gradle/8.10.2/fileHashes/fileHashes.lock
new file mode 100644
index 0000000000000000000000000000000000000000..6ff3a415c6023cab4336fc709e46d5153dca2c9a
GIT binary patch
literal 17
TcmZR!SrmR}pBH-<0~7!NE~W#n

literal 0
HcmV?d00001

diff --git a/.gradle/8.10.2/gc.properties b/.gradle/8.10.2/gc.properties
new file mode 100644
index 0000000..e69de29
diff --git a/.gradle/8.8/checksums/checksums.lock b/.gradle/8.8/checksums/checksums.lock
new file mode 100644
index 0000000000000000000000000000000000000000..8a45a7084553486969a0e333e25707ca7f09aa8d
GIT binary patch
literal 17
TcmZP$p5)?V>oR*L0~7!NCd~sb

literal 0
HcmV?d00001

diff --git a/.gradle/8.8/dependencies-accessors/gc.properties b/.gradle/8.8/dependencies-accessors/gc.properties
new file mode 100644
index 0000000..e69de29
diff --git a/.gradle/8.8/executionHistory/executionHistory.bin b/.gradle/8.8/executionHistory/executionHistory.bin
new file mode 100644
index 0000000000000000000000000000000000000000..31d2a1839cbee614a0ff816d1d8bba3e57db218d
GIT binary patch
literal 19652
zcmZ=^V2}{_4+RVeAc|m)vPMH-Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!n
zMnhmU1V%$(Gz3ONU^E0qLtr!nhD!*9GB7Z3K|CX&!vtdRmoqRJ@GvkiFd8IFM=<d&
zn+FnQVDNB+P9MN21_lOAh}<YS8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*O
zqaiRF0;3@?8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*OqaiRF0;3@?8Umvs
zFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*OqaiRDLco}Tfu)Lpfu#t9XJ-{<nH!aw
zmM0e_rkiHur01lV6(%O-CKsCsNTmfOuPl3M6W$S<_iN3kV>>x8gc#Q67p3c^7bT|T
zr0OLWWa^b97H1dhl@}!z6r>jEg+u6gm(=9^qQsKa6oI$*@7-H`V(U7YA16d36F)v>
zqSyq6<Bai6rI|S?!O2CL1tsw+@kOP1@yR*)#id25hAJ?YQM_qls)f0wp^1f|rKv%R
zrMY>Ukx{a-scA||in(#BiG{$k?Dvy)eO-IQ;QlMuQ(u@HxOx(ck~1>PQk@cuQ#sZV
z<5QJ@#F7k<@`>(2jxIi~@u9)4LGd2`zOFE{Knj@qpaG<xl383*JP|||WhRxDWaj6A
zG*fC9ih)=xoQ7;+a7Ln$sabGoE(40TkjjEoj%`Hw*(I~M1m=8@wiYK(zX`}zgcjv6
z@69MFDJZtm*Dp>jD$7hxErz9<{GxPlFu+VG)`uh~T?;)6-K5Msy{gQDK8R3QYEf}!
zejam+g`P!!UTR5seo=NvW^QVJX$cDhgSx<svc#Osl*E!$WEX`N<uEd^^du#gBxgX9
z2;(+qtC-N@)S}{;q{Nh>q8P`50++;+#2BCa<iwnqkks6Q7*GV|<R`~KEH2keN-SXz
zIJ{=Z{O{a9Vi~==?moH^`Skp%kG&g>u8XmBWF;24W#*(Z?j_Y^U64hftdf;j#2|3~
zRf&0G@CM%YVCN$*Yh7L+TL!XV?`0;I{(_?Xg4Cjt%+zAAMMoIPwh3VpgTSMhxxr0^
zRm=Ybyu0%KfWPQLu!X-ES-OkCxe097CQ_{`XAtNL`=)v7z;WUG^RjmorR>-KvjXIk
M&(1823=Ayw0M_mA8vp<R

literal 0
HcmV?d00001

diff --git a/.gradle/8.8/executionHistory/executionHistory.lock b/.gradle/8.8/executionHistory/executionHistory.lock
new file mode 100644
index 0000000000000000000000000000000000000000..28dcf5f95f3b8611411e632c8e70bb832e839ade
GIT binary patch
literal 17
UcmZQx{quCscg9OS3=qH!07QcYSO5S3

literal 0
HcmV?d00001

diff --git a/.gradle/8.8/fileChanges/last-build.bin b/.gradle/8.8/fileChanges/last-build.bin
new file mode 100644
index 0000000000000000000000000000000000000000..f76dd238ade08917e6712764a16a22005a50573d
GIT binary patch
literal 1
IcmZPo000310RR91

literal 0
HcmV?d00001

diff --git a/.gradle/8.8/fileHashes/fileHashes.bin b/.gradle/8.8/fileHashes/fileHashes.bin
new file mode 100644
index 0000000000000000000000000000000000000000..54cad51c13f406f7c097b1a5990d97a41d4bf162
GIT binary patch
literal 18697
zcmZ=^V2}{_4+RVeAc|m)vPMH-Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!n
zMnhmU1V%$(Gz3ONU^E0qLtr!nhD!*9GB7Z3K|CX&!vtdRmoqRJ@Gvkiuw43@*7nLN
zl@TP$z~JEsoj&;gKH`s^$`eKwsCY3<Ts-)L@}!unpP}N{VdB}W_4CVp{xU<wm%_wh
zGy?-eAw+JJ91Vfd5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z
z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c
z4S~@R7!85Z5Eu=C(GVC7fzc44Bm|5Z7#K7e7#I{mSm5xQ9rM3)|A=Mu?z;QvM&wfl
z2FA&PdqVvoHgJbCFfiz$>Nx+Z#5^&018;k<^O2XeF0Uavg54lGR_?{r@hE0)a8qH`
z@;?FZu6#e>FACM+2+_gt3sXl|*f-5n2aXHhpO?L(C}qDkL`O&sM28}1UxFS0$A5T%

literal 0
HcmV?d00001

diff --git a/.gradle/8.8/fileHashes/fileHashes.lock b/.gradle/8.8/fileHashes/fileHashes.lock
new file mode 100644
index 0000000000000000000000000000000000000000..3b21749594fbc6d5f3d5df219da1355f3213846b
GIT binary patch
literal 17
UcmZS9Uz`8Gc}t%h0|c-E05seLHvj+t

literal 0
HcmV?d00001

diff --git a/.gradle/8.8/gc.properties b/.gradle/8.8/gc.properties
new file mode 100644
index 0000000..e69de29
diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock
new file mode 100644
index 0000000000000000000000000000000000000000..964c60967a2b63f66ae399dfea332826c256aeeb
GIT binary patch
literal 17
UcmZRMh_{lPws>110|f8`04X#Bf&c&j

literal 0
HcmV?d00001

diff --git a/.gradle/buildOutputCleanup/cache.properties b/.gradle/buildOutputCleanup/cache.properties
new file mode 100644
index 0000000..3979684
--- /dev/null
+++ b/.gradle/buildOutputCleanup/cache.properties
@@ -0,0 +1,2 @@
+#Sat Nov 09 17:23:07 CET 2024
+gradle.version=8.10.2
diff --git a/.gradle/vcs-1/gc.properties b/.gradle/vcs-1/gc.properties
new file mode 100644
index 0000000..e69de29
diff --git a/src/main/java/model/Fire.java b/src/main/java/model/Fire.java
new file mode 100644
index 0000000..335315e
--- /dev/null
+++ b/src/main/java/model/Fire.java
@@ -0,0 +1,29 @@
+package model;
+
+import util.Position;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+public class Fire {
+    private Set<Position> positions;
+
+    public Fire(Set<Position> initialPositions) {
+        this.positions = initialPositions;
+    }
+
+    public Set<Position> getPositions() {
+        return positions;
+    }
+
+    public List<Position> spread(Set<Position> neighbors) {
+        // Logique de propagation de l'incendie
+        List<Position> newFirePositions = new ArrayList<>(neighbors);
+        positions.addAll(newFirePositions);
+        return newFirePositions;
+    }
+
+    public void extinguish(Position position) {
+        positions.remove(position);
+    }}
\ No newline at end of file
diff --git a/src/main/java/model/Firefighter.java b/src/main/java/model/Firefighter.java
new file mode 100644
index 0000000..70237fb
--- /dev/null
+++ b/src/main/java/model/Firefighter.java
@@ -0,0 +1,37 @@
+package model;
+
+import util.Position;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import model.TargetStrategy;
+
+public class Firefighter {
+    private List<Position> positions;
+    private TargetStrategy targetStrategy;
+
+    public Firefighter(List<Position> initialPositions, TargetStrategy targetStrategy) {
+        this.positions = initialPositions;
+        this.targetStrategy = targetStrategy;
+    }
+
+    public List<Position> moveToClosestFire(Set<Position> firePositions, Map<Position, List<Position>> neighbors) {
+        List<Position> modifiedPositions = new ArrayList<>();
+        List<Position> newPositions = new ArrayList<>();
+
+        for (Position position : positions) {
+            Position newPosition = targetStrategy.neighborClosestToFire(position, firePositions, neighbors);
+            newPositions.add(newPosition);
+            modifiedPositions.add(position);
+            modifiedPositions.add(newPosition);
+        }
+        this.positions = newPositions;
+        return modifiedPositions;
+    }
+
+    public List<Position> getPositions() {
+        return positions;
+    }
+}
\ No newline at end of file
-- 
GitLab