diff --git a/.gradle/8.4/executionHistory/executionHistory.bin b/.gradle/8.4/executionHistory/executionHistory.bin index a5d0b3ec5b95972acdc0e1b1eb669aaa0e8035b5..e18a40561026a85996f70b8d72752d1a261cf3d7 100644 Binary files a/.gradle/8.4/executionHistory/executionHistory.bin and b/.gradle/8.4/executionHistory/executionHistory.bin differ diff --git a/.gradle/8.4/executionHistory/executionHistory.lock b/.gradle/8.4/executionHistory/executionHistory.lock index b7c2f5583a7dd831811c5b0de60eaf659d27068f..31afb2fde1ea45ca2514882e932c8dd2bd6bd5e5 100644 Binary files a/.gradle/8.4/executionHistory/executionHistory.lock and b/.gradle/8.4/executionHistory/executionHistory.lock differ diff --git a/.gradle/8.4/fileHashes/fileHashes.bin b/.gradle/8.4/fileHashes/fileHashes.bin index 08803b8ad4c4e7d1cc6c401c51420d2742340c25..f0f60dd189c93d507874834476366d743a8ea6bd 100644 Binary files a/.gradle/8.4/fileHashes/fileHashes.bin and b/.gradle/8.4/fileHashes/fileHashes.bin differ diff --git a/.gradle/8.4/fileHashes/fileHashes.lock b/.gradle/8.4/fileHashes/fileHashes.lock index 7ffccdbda4931f659d3234ec73f2e08e8601586a..dbb4268685b089c3519007701625f708d39d3335 100644 Binary files a/.gradle/8.4/fileHashes/fileHashes.lock and b/.gradle/8.4/fileHashes/fileHashes.lock differ diff --git a/.gradle/8.4/fileHashes/resourceHashesCache.bin b/.gradle/8.4/fileHashes/resourceHashesCache.bin index 02687afa3db118a567b09be0b471de862a223f02..5d5250bf618f0c3e771da9ff207dcd6afede9fcf 100644 Binary files a/.gradle/8.4/fileHashes/resourceHashesCache.bin and b/.gradle/8.4/fileHashes/resourceHashesCache.bin differ diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index ddadcf33733c1bcc83a80d1fa35fb6c158f752be..597fa5646bc0a202c4acc150ae6bda99d792ee61 100644 Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin index 97757e493696f88cacfa26c546434f8d90d26a82..78e48262bb0ad56aeb9b7e439cbf693717d8b1fd 100644 Binary files a/.gradle/buildOutputCleanup/outputFiles.bin and b/.gradle/buildOutputCleanup/outputFiles.bin differ diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe index 296a051a57bcda0fb14333f1fc918572ca487b55..6eea5302820e1168fc19b7a74e8eb298e3f76dc2 100644 Binary files a/.gradle/file-system.probe and b/.gradle/file-system.probe differ diff --git a/build/classes/java/main/controller/Controller.class b/build/classes/java/main/controller/Controller.class index d6b267cb0f38c6486808837f61ba866434fae1d3..93c1e1a51a890beb25828d40a897e7dc64df73ee 100644 Binary files a/build/classes/java/main/controller/Controller.class and b/build/classes/java/main/controller/Controller.class differ diff --git a/build/classes/java/main/model/ModelElement.class b/build/classes/java/main/model/ModelElement.class index 6143f150ac592a530892fd585d60cf42c6d07aaf..56c404f1f632396c3dfa76bebf6ffc66780d065c 100644 Binary files a/build/classes/java/main/model/ModelElement.class and b/build/classes/java/main/model/ModelElement.class differ diff --git a/build/classes/java/main/newmodel/Extinguisher.class b/build/classes/java/main/newmodel/Extinguisher.class index 894890b8147bfba52e300d94936365bf3a1da66c..6b43e9b55ae94fbcad6cd61c1419e0f1f319e9c2 100644 Binary files a/build/classes/java/main/newmodel/Extinguisher.class and b/build/classes/java/main/newmodel/Extinguisher.class differ diff --git a/build/classes/java/main/newmodel/Fboard.class b/build/classes/java/main/newmodel/Fboard.class index fe5c215179707eb6aff0f78dd1750f53fc96ad09..6d6dd6fcac301041b06a8599abaf9f24d2d2cce8 100644 Binary files a/build/classes/java/main/newmodel/Fboard.class and b/build/classes/java/main/newmodel/Fboard.class differ diff --git a/build/classes/java/main/newmodel/Fire.class b/build/classes/java/main/newmodel/Fire.class index f625792e7a6048eb3bfdad7147f7991b2a3fd371..ec444add9b9e8dfc26554e0e2e5afc5ae8666856 100644 Binary files a/build/classes/java/main/newmodel/Fire.class and b/build/classes/java/main/newmodel/Fire.class differ diff --git a/build/classes/java/main/newmodel/FireFighter.class b/build/classes/java/main/newmodel/FireFighter.class index 953a2c4aab179893852b07fb34e2145a0c59f8f9..5e3c3b84c4d3cbca55ca2d46814fb6302d72848d 100644 Binary files a/build/classes/java/main/newmodel/FireFighter.class and b/build/classes/java/main/newmodel/FireFighter.class differ diff --git a/build/classes/java/main/view/ViewElement.class b/build/classes/java/main/view/ViewElement.class index 9c06aa83b1e4b099999a2b888508175e41625a98..63d49854069620a2b3f32fbe763d47f505f16429 100644 Binary files a/build/classes/java/main/view/ViewElement.class and b/build/classes/java/main/view/ViewElement.class differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Controller.class.uniqueId4 b/build/tmp/compileJava/compileTransaction/stash-dir/Controller.class.uniqueId4 deleted file mode 100644 index d6b267cb0f38c6486808837f61ba866434fae1d3..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/Controller.class.uniqueId4 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Extinguisher.class.uniqueId1 b/build/tmp/compileJava/compileTransaction/stash-dir/Extinguisher.class.uniqueId1 deleted file mode 100644 index 894890b8147bfba52e300d94936365bf3a1da66c..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/Extinguisher.class.uniqueId1 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Fboard.class.uniqueId2 b/build/tmp/compileJava/compileTransaction/stash-dir/Fboard.class.uniqueId2 deleted file mode 100644 index b506be8c5ab23c6da2c589b416f407f3cc10cc32..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/Fboard.class.uniqueId2 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Fire.class.uniqueId6 b/build/tmp/compileJava/compileTransaction/stash-dir/Fire.class.uniqueId6 deleted file mode 100644 index f625792e7a6048eb3bfdad7147f7991b2a3fd371..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/Fire.class.uniqueId6 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/FireFighter.class.uniqueId5 b/build/tmp/compileJava/compileTransaction/stash-dir/FireFighter.class.uniqueId5 deleted file mode 100644 index 953a2c4aab179893852b07fb34e2145a0c59f8f9..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/FireFighter.class.uniqueId5 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/item.class.uniqueId0 b/build/tmp/compileJava/compileTransaction/stash-dir/item.class.uniqueId0 deleted file mode 100644 index a46bf5e0e0ddf302f702ca7ac83e2c4405bf337c..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/item.class.uniqueId0 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/module-info.class.uniqueId3 b/build/tmp/compileJava/compileTransaction/stash-dir/module-info.class.uniqueId3 deleted file mode 100644 index 022c1fa844a25744d0a811cb92acc69ae1261c3d..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/module-info.class.uniqueId3 and /dev/null differ diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin index dc869a1772e567845d90e803120a428499cf9665..97d734021b7234a924055acc7b5bcd852f2b0525 100644 Binary files a/build/tmp/compileJava/previous-compilation-data.bin and b/build/tmp/compileJava/previous-compilation-data.bin differ diff --git a/src/main/java/controller/Controller.java b/src/main/java/controller/Controller.java index fb20711c755936a28954a28ba01705df020e501a..f29bd8239e9562de6033bd5933da09b1535cb4bc 100644 --- a/src/main/java/controller/Controller.java +++ b/src/main/java/controller/Controller.java @@ -105,6 +105,9 @@ public class Controller { if (squareState.contains(ModelElement.FIRE)){ return ViewElement.FIRE; } + if(squareState.contains(ModelElement.NUAGE)){ + return ViewElement.NUAGE; + } return ViewElement.EMPTY; } @@ -154,6 +157,7 @@ public class Controller { List<item> items= new ArrayList<>(); items.add(new Fire(initialFireCount)); items.add(new FireFighter(initialFirefighterCount)); + items.add(new Nuage(initialFirefighterCount)); Fboard b=new Fboard(columnCount,rowCount,items); b.initializeElements(); this.setModel(b); diff --git a/src/main/java/model/ModelElement.java b/src/main/java/model/ModelElement.java index 84c78103e16e51f6207e0bf69de9d1a3cc4b5280..0811ce39595d3ed4ff2d5c2cbc4822042df64dbd 100644 --- a/src/main/java/model/ModelElement.java +++ b/src/main/java/model/ModelElement.java @@ -2,5 +2,5 @@ package model; //this class represents two types of constant Firefighter or fire public enum ModelElement { - FIREFIGHTER, FIRE ,NOT + FIREFIGHTER, FIRE ,NOT ,NUAGE } diff --git a/src/main/java/newmodel/Extinguisher.java b/src/main/java/newmodel/Extinguisher.java index 632aaadaf3852b0cd56f8b86f0d4fff0c98c6994..10b3de1053438a20a65d436c395fe5cd79100ad5 100644 --- a/src/main/java/newmodel/Extinguisher.java +++ b/src/main/java/newmodel/Extinguisher.java @@ -5,7 +5,7 @@ import util.Position; import java.util.List; public abstract class Extinguisher implements item { - + protected static final int ID = 0 ; public abstract List<Position> update(Fboard board); public abstract void extinguish(Position position,Fboard board); diff --git a/src/main/java/newmodel/Fboard.java b/src/main/java/newmodel/Fboard.java index b7b4524baa077e1ebc36838be291830f432a0711..eef34945700c6ccb8100d5a39fcb45c43bdf6ecf 100644 --- a/src/main/java/newmodel/Fboard.java +++ b/src/main/java/newmodel/Fboard.java @@ -65,6 +65,10 @@ public class Fboard { } } + public List<item> getItems(){ + return this.items; + } + public Fire getFire() { for (item e : items) { diff --git a/src/main/java/newmodel/Fire.java b/src/main/java/newmodel/Fire.java index 9675660b16fc4080eb89685422346bfab579c66d..51787a680bc55da7256a01c6b2f148e3e131928d 100644 --- a/src/main/java/newmodel/Fire.java +++ b/src/main/java/newmodel/Fire.java @@ -10,7 +10,7 @@ public class Fire implements item { private final int initialFireCount; private List<Position> firePositions; - private ModelElement state; + private final ModelElement state; private final Random randomGenerator = new Random(); private final int ID=1; diff --git a/src/main/java/newmodel/FireFighter.java b/src/main/java/newmodel/FireFighter.java index 31d40efaac40775ff2059aade316cce5bbf25ab8..2ee8824c7f06df87a44e14bcd1a0dd148de88299 100644 --- a/src/main/java/newmodel/FireFighter.java +++ b/src/main/java/newmodel/FireFighter.java @@ -7,13 +7,12 @@ import java.util.Random; public class FireFighter extends Extinguisher { - private ModelElement state; + private final ModelElement state; private List<Position> firefighterPositions; private final Random randomGenerator = new Random(); private List<Position> neighborFirePositions; private final int initialFirefighterCount; - private final int ID=0; public FireFighter(int initialFirefighterCount){ this.initialFirefighterCount=initialFirefighterCount; @@ -55,7 +54,6 @@ public class FireFighter extends Extinguisher { return modifiedPositions; } - //modifiedPosition contient Last fire fighter positions and New Firefighterpositions with neighbor of every new firefighter @@ -68,9 +66,8 @@ public class FireFighter extends Extinguisher { return this.state; } - // implementi liha pattern visiteur public int getID() { - return this.ID; + return super.ID; } public void initialize() { diff --git a/src/main/java/newmodel/Nuage.java b/src/main/java/newmodel/Nuage.java new file mode 100644 index 0000000000000000000000000000000000000000..e843f6e47ccb5a7c0c6a9df1544c464104609ec7 --- /dev/null +++ b/src/main/java/newmodel/Nuage.java @@ -0,0 +1,78 @@ +package newmodel; + +import model.ModelElement; +import util.Position; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +public class Nuage extends Extinguisher { + private final ModelElement state; + private List<Position> NuagePositions; + private final Random randomGenerator = new Random(); + private final int initialNuageCount; + + public Nuage(int initialNuageCount) { + this.state = ModelElement.NUAGE; + this.initialNuageCount=initialNuageCount; + } + + public List<Position> update(Fboard board) { + int i = 0; + List<Position> result = new ArrayList<>(); + while (i < this.initialNuageCount) { + Position pos = randomPosition(); + boolean positionIsValid = true; + + for (item it : board.getItems()) { + if (it.getID() == 0 && it.getPositions().contains(pos)) { + positionIsValid = false; + break; + } + } + + if (positionIsValid) { + i++; + result.add(pos); + } + } + for(Position p : result){ + extinguish(p,board); + } + this.NuagePositions=result; + return this.NuagePositions; + } + + private Position randomPosition() { + return new Position(randomGenerator.nextInt(Fboard.rowCount), randomGenerator.nextInt(Fboard.columnCount)); + } + + + + public void extinguish(Position position,Fboard board) { + board.getFire().extinguish(position); + } + + + public ModelElement getState() { + return this.state; + } + + + public int getID() { + return ID; + } + + // A modifier pour ne pas avoir une superpositione entre firefighter et nuage + public void initialize() { + NuagePositions = new ArrayList<>(); + for (int index = 0; index < initialNuageCount; index++) + NuagePositions.add(randomPosition()); + } + + @Override + public List<Position> getPositions() { + return NuagePositions; + } +} diff --git a/src/main/java/view/ViewElement.java b/src/main/java/view/ViewElement.java index bd847977fc254483e0e255a17586cfb6733a023a..abb2ce32056405f2301efcc4994df4693e02c37a 100644 --- a/src/main/java/view/ViewElement.java +++ b/src/main/java/view/ViewElement.java @@ -4,7 +4,7 @@ import javafx.scene.paint.Color; //this class declare three constants with each constants is related to a specified color like fire to red public enum ViewElement { - FIREFIGHTER(Color.BLUE), FIRE(Color.RED), EMPTY(Color.WHITE); + FIREFIGHTER(Color.DARKBLUE), FIRE(Color.RED), EMPTY(Color.WHITE) ,NUAGE(Color.LIGHTBLUE); final Color color; ViewElement(Color color) { this.color = color;