diff --git a/.gradle/8.10.2/executionHistory/executionHistory.bin b/.gradle/8.10.2/executionHistory/executionHistory.bin index 8966942aee03de73e68a87ab5eda41875b89188a..0d92e00dbbd0a347cdd9a7f03e94dff731554aba 100644 Binary files a/.gradle/8.10.2/executionHistory/executionHistory.bin and b/.gradle/8.10.2/executionHistory/executionHistory.bin differ diff --git a/.gradle/8.10.2/executionHistory/executionHistory.lock b/.gradle/8.10.2/executionHistory/executionHistory.lock index 49405863aae00b494edce1612be226fca494db64..bc8fb137df9f101bb354ddfc9b76acac781a25a8 100644 Binary files a/.gradle/8.10.2/executionHistory/executionHistory.lock and b/.gradle/8.10.2/executionHistory/executionHistory.lock differ diff --git a/.gradle/8.10.2/fileHashes/fileHashes.bin b/.gradle/8.10.2/fileHashes/fileHashes.bin index 84af1bac982e9312a52aa9ba9aa23d5509ab9a63..8fc4a4d37ffc3794da21278b0e7e7e8dbe091303 100644 Binary files a/.gradle/8.10.2/fileHashes/fileHashes.bin and b/.gradle/8.10.2/fileHashes/fileHashes.bin differ diff --git a/.gradle/8.10.2/fileHashes/fileHashes.lock b/.gradle/8.10.2/fileHashes/fileHashes.lock index 9b9ae10214f053332d90fa497259bd818b9c02b4..183ce3f36866a5918be8ec7e8e2e4ff99f62dac0 100644 Binary files a/.gradle/8.10.2/fileHashes/fileHashes.lock and b/.gradle/8.10.2/fileHashes/fileHashes.lock differ diff --git a/.gradle/8.10.2/fileHashes/resourceHashesCache.bin b/.gradle/8.10.2/fileHashes/resourceHashesCache.bin index b8725ad6b473dbb8ff8d32e72245358ae0f97214..5b3bdc3e93b4b93b75c77fe5047baeeba7eee662 100644 Binary files a/.gradle/8.10.2/fileHashes/resourceHashesCache.bin and b/.gradle/8.10.2/fileHashes/resourceHashesCache.bin differ diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index f99829631ca3c57b3cb959e50f14c3f164809d83..b635deabc9b1cac73bb434c7a2dac4b97f24e938 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 25eff8e95de6232ae9d9ebf35b227ca9a0d0ecd4..19fe2a07031b6e16518095fb0847c3f5267fec00 100644 Binary files a/.gradle/buildOutputCleanup/outputFiles.bin and b/.gradle/buildOutputCleanup/outputFiles.bin differ diff --git a/build/classes/java/main/app/SimulatorApplication.class b/build/classes/java/main/app/SimulatorApplication.class index 6d88dc9a0edace933e7b9ca5f67bbdaddba48037..ded130549453c7be03cf16abfa899ad45ea7476b 100644 Binary files a/build/classes/java/main/app/SimulatorApplication.class and b/build/classes/java/main/app/SimulatorApplication.class differ diff --git a/build/classes/java/main/app/SimulatorMain.class b/build/classes/java/main/app/SimulatorMain.class index a2dee6a565c2ac303dd2d6027dbf08183edeeddf..1d13229f73ef27c233a432bc89aa3dffc086246a 100644 Binary files a/build/classes/java/main/app/SimulatorMain.class and b/build/classes/java/main/app/SimulatorMain.class differ diff --git a/build/classes/java/main/controller/Controller.class b/build/classes/java/main/controller/Controller.class index 5460b69e4ad124b6ba3858a79d483e32eb5cc8da..da47fbe685528a3342e701a12205a8f5a891a554 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/controller/PersistentToggleGroup.class b/build/classes/java/main/controller/PersistentToggleGroup.class index da299736efc238eef36f74e7abed7e5b291eba8d..314954a9fd4ab6d48da5fec7067063879e670d62 100644 Binary files a/build/classes/java/main/controller/PersistentToggleGroup.class and b/build/classes/java/main/controller/PersistentToggleGroup.class differ diff --git a/build/classes/java/main/model/Behavior.class b/build/classes/java/main/model/Behavior.class index 7b66ceda77beed63d4117f3a5a0e60d01e373d50..c8a1c33b84f194553e3868714d53f714ee53745a 100644 Binary files a/build/classes/java/main/model/Behavior.class and b/build/classes/java/main/model/Behavior.class differ diff --git a/build/classes/java/main/model/Board.class b/build/classes/java/main/model/Board.class index 18242fdec83565452b8793a712481ec89a92e393..a1f8169e45fef3872ae559ad22bdf5a3d6f63dfd 100644 Binary files a/build/classes/java/main/model/Board.class and b/build/classes/java/main/model/Board.class differ diff --git a/build/classes/java/main/model/BoardData.class b/build/classes/java/main/model/BoardData.class index 07eb07f10a711f6f8ef0f19cf60c4172975d4ba7..df031351163a0a0b16469068925835628d0c7153 100644 Binary files a/build/classes/java/main/model/BoardData.class and b/build/classes/java/main/model/BoardData.class differ diff --git a/build/classes/java/main/model/Cell.class b/build/classes/java/main/model/Cell.class index c5b5ebd6bb02a92a57e1e05dacdf52857fba1e74..a6ccc8b21b59ef78490a374f74eb5bfce3f932dc 100644 Binary files a/build/classes/java/main/model/Cell.class and b/build/classes/java/main/model/Cell.class differ diff --git a/build/classes/java/main/model/ChargeTarget.class b/build/classes/java/main/model/ChargeTarget.class new file mode 100644 index 0000000000000000000000000000000000000000..467dbcee06e169019b57fe86d0d620254f65c983 Binary files /dev/null and b/build/classes/java/main/model/ChargeTarget.class differ diff --git a/build/classes/java/main/model/ChargerBehavior.class b/build/classes/java/main/model/ChargerBehavior.class new file mode 100644 index 0000000000000000000000000000000000000000..40e50666dab15c5d8701e1b2d3b0aac5d563703e Binary files /dev/null and b/build/classes/java/main/model/ChargerBehavior.class differ diff --git a/build/classes/java/main/model/Cloud.class b/build/classes/java/main/model/Cloud.class index 8abe5c73fad43333b2acc6717f97fb586a2837cf..99979c80b8f8bc01a75d26d2c31792331f8b08c6 100644 Binary files a/build/classes/java/main/model/Cloud.class and b/build/classes/java/main/model/Cloud.class differ diff --git a/build/classes/java/main/model/CloudBehavior.class b/build/classes/java/main/model/CloudBehavior.class index b82fcd18821403a9d9289b8aa19200fd231f8b71..1c435f72cc41009d2d5d9f84aa67c2a43bcd51e1 100644 Binary files a/build/classes/java/main/model/CloudBehavior.class and b/build/classes/java/main/model/CloudBehavior.class differ diff --git a/build/classes/java/main/model/ConnexElement.class b/build/classes/java/main/model/ConnexElement.class new file mode 100644 index 0000000000000000000000000000000000000000..553af90201a3b9b52c6e62b7503bf412dace9bcf Binary files /dev/null and b/build/classes/java/main/model/ConnexElement.class differ diff --git a/build/classes/java/main/model/Element.class b/build/classes/java/main/model/Element.class index 8e2eb1350365848b15dcaf78c2b55cde5c7ddfb1..3c37b9b5c664e7c261d89a5cf80c7b0842754dae 100644 Binary files a/build/classes/java/main/model/Element.class and b/build/classes/java/main/model/Element.class differ diff --git a/build/classes/java/main/model/ElementFactory.class b/build/classes/java/main/model/ElementFactory.class index 1bd421ef615c9e45a152c2d4978560b948f63951..8c69537429cd49c7b4d6915427103947d3b2bace 100644 Binary files a/build/classes/java/main/model/ElementFactory.class and b/build/classes/java/main/model/ElementFactory.class differ diff --git a/build/classes/java/main/model/FFBehavior.class b/build/classes/java/main/model/FFBehavior.class index 291fe9094bbfeaa70d5df89ff86cc3f4924868ba..841f978d80c0a780b8734d21e242fe4d9434b8b1 100644 Binary files a/build/classes/java/main/model/FFBehavior.class and b/build/classes/java/main/model/FFBehavior.class differ diff --git a/build/classes/java/main/model/FFBoard.class b/build/classes/java/main/model/FFBoard.class index 9ed68b6c6974ad6e3ccdba8b5b162feb0dedbf50..164df9e0ea9152d7ff4ec2a85af2d7b0284069f9 100644 Binary files a/build/classes/java/main/model/FFBoard.class and b/build/classes/java/main/model/FFBoard.class differ diff --git a/build/classes/java/main/model/FFBoardData.class b/build/classes/java/main/model/FFBoardData.class index 083bf54eef3faaf8e51274d1d229a5ee5f7d084d..3486ddfcd169a48edd03bc4a1272f2b9df31734a 100644 Binary files a/build/classes/java/main/model/FFBoardData.class and b/build/classes/java/main/model/FFBoardData.class differ diff --git a/build/classes/java/main/model/FFUpdater.class b/build/classes/java/main/model/FFUpdater.class index 3e585d7404d70b661e216810cc914f7a9c8d105b..176ed6d6e39f594306adc575db2ea8b0a8ddecf0 100644 Binary files a/build/classes/java/main/model/FFUpdater.class and b/build/classes/java/main/model/FFUpdater.class differ diff --git a/build/classes/java/main/model/FFboardFiller.class b/build/classes/java/main/model/FFboardFiller.class index 823516ccceb333663f42a9f493b95ff07bf5d14e..69706264fe913cc46c4410a6ca777db1457ee9a5 100644 Binary files a/build/classes/java/main/model/FFboardFiller.class and b/build/classes/java/main/model/FFboardFiller.class differ diff --git a/build/classes/java/main/model/Fire.class b/build/classes/java/main/model/Fire.class index 360986a08a7cb0be7450bcd306c3e8e7a6573fd0..1dd7052a4bdca160584d7b5360e4dfc3bc94dbe5 100644 Binary files a/build/classes/java/main/model/Fire.class and b/build/classes/java/main/model/Fire.class differ diff --git a/build/classes/java/main/model/FireBehavior.class b/build/classes/java/main/model/FireBehavior.class index a63c2a3b6535781cf1e152bbb4645a4accf42d73..a59a1df9ac8f798f422d5bd7b2781bd9340b87b6 100644 Binary files a/build/classes/java/main/model/FireBehavior.class and b/build/classes/java/main/model/FireBehavior.class differ diff --git a/build/classes/java/main/model/FireFactory.class b/build/classes/java/main/model/FireFactory.class index 6e4183b0a1a91d569b73a44dee37ec01ec8e7e3a..59d6bccfdc7812f8331ffc923d803975f00ca81a 100644 Binary files a/build/classes/java/main/model/FireFactory.class and b/build/classes/java/main/model/FireFactory.class differ diff --git a/build/classes/java/main/model/FireFighter.class b/build/classes/java/main/model/FireFighter.class index 1e2297e2ca73c58649903e7346f5ad3fa4f6f0b8..5964bfc79171cfcba4143f82d20872379b4be94a 100644 Binary files a/build/classes/java/main/model/FireFighter.class and b/build/classes/java/main/model/FireFighter.class differ diff --git a/build/classes/java/main/model/FirefighterBehavior.class b/build/classes/java/main/model/FireFighterBehavior.class similarity index 99% rename from build/classes/java/main/model/FirefighterBehavior.class rename to build/classes/java/main/model/FireFighterBehavior.class index 2bca188bdc18f223c28a8b7a8294d8cb2036cb8f..14cd4a24bff338fd74d2f17bd44686d40421da64 100644 Binary files a/build/classes/java/main/model/FirefighterBehavior.class and b/build/classes/java/main/model/FireFighterBehavior.class differ diff --git a/build/classes/java/main/model/Forest.class b/build/classes/java/main/model/Forest.class new file mode 100644 index 0000000000000000000000000000000000000000..bfc79442f47547ff214af4a77b0b0b5153e769af Binary files /dev/null and b/build/classes/java/main/model/Forest.class differ diff --git a/build/classes/java/main/model/Land.class b/build/classes/java/main/model/Land.class index cc196ad2cb290b7506aebcb8074e7378df7e0631..68ea065d9beec6041d0beb4ce3c08aa13505baeb 100644 Binary files a/build/classes/java/main/model/Land.class and b/build/classes/java/main/model/Land.class differ diff --git a/build/classes/java/main/model/ModelElement.class b/build/classes/java/main/model/ModelElement.class index d3db593cc6c61187e3068ed32b7fe61f64ac09e4..ff226d67cd5a6c679a59329883f3e65397342b01 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/model/MotorizedFireFighter.class b/build/classes/java/main/model/MotorizedFireFighter.class index 8f8c31c07c776f0bb418023db3a336f14f691707..32ce2aca05b23bd96ab7fc847112169e179ebbb7 100644 Binary files a/build/classes/java/main/model/MotorizedFireFighter.class and b/build/classes/java/main/model/MotorizedFireFighter.class differ diff --git a/build/classes/java/main/model/Mountain.class b/build/classes/java/main/model/Mountain.class index 55d91ac26b769014e955292d6c7e4faa355cd59e..a93d9d60573c29f1de41fd596f0611137abdb12e 100644 Binary files a/build/classes/java/main/model/Mountain.class and b/build/classes/java/main/model/Mountain.class differ diff --git a/build/classes/java/main/model/Printable.class b/build/classes/java/main/model/Printable.class index 4a4da6580c0bf74116ba0d997894b5afc5b6981a..6c3a303bd12db715502a540e39b80657771b2d69 100644 Binary files a/build/classes/java/main/model/Printable.class and b/build/classes/java/main/model/Printable.class differ diff --git a/build/classes/java/main/model/QuickFire.class b/build/classes/java/main/model/QuickFire.class new file mode 100644 index 0000000000000000000000000000000000000000..963867da10a4b51fa8119736ffe5826c9d2b3260 Binary files /dev/null and b/build/classes/java/main/model/QuickFire.class differ diff --git a/build/classes/java/main/model/RemoverBehavior.class b/build/classes/java/main/model/RemoverBehavior.class index be0680b2517d2851ae5e140a9a5d233c854ae81a..dd637732c93a00b59e8054ce0ceee6174794e8a2 100644 Binary files a/build/classes/java/main/model/RemoverBehavior.class and b/build/classes/java/main/model/RemoverBehavior.class differ diff --git a/build/classes/java/main/model/Road.class b/build/classes/java/main/model/Road.class index b3e319e61364f96bb95080e8f4872bc17e437326..2954c7d840fabb369957ca754c8a1279098a67c3 100644 Binary files a/build/classes/java/main/model/Road.class and b/build/classes/java/main/model/Road.class differ diff --git a/build/classes/java/main/model/RoadFactory.class b/build/classes/java/main/model/RoadFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..66b302a27af3bee8dfb698aa7aba072813cbfdce Binary files /dev/null and b/build/classes/java/main/model/RoadFactory.class differ diff --git a/build/classes/java/main/model/Rock.class b/build/classes/java/main/model/Rock.class index 41ee410a25e815c5d9cb896015db1ce726e96037..2dcd97f4e55156e20bb210d90e8e654202d41a80 100644 Binary files a/build/classes/java/main/model/Rock.class and b/build/classes/java/main/model/Rock.class differ diff --git a/build/classes/java/main/model/RockBehavior.class b/build/classes/java/main/model/RockBehavior.class new file mode 100644 index 0000000000000000000000000000000000000000..6bb980514734025b361828f12eb82e32484dfd76 Binary files /dev/null and b/build/classes/java/main/model/RockBehavior.class differ diff --git a/build/classes/java/main/model/StandardFire.class b/build/classes/java/main/model/StandardFire.class index 81358e7c16260b8d1d77d2d7a0650163f6d5df8f..650aa056a75d2b256738db200ccb79eddd158914 100644 Binary files a/build/classes/java/main/model/StandardFire.class and b/build/classes/java/main/model/StandardFire.class differ diff --git a/build/classes/java/main/model/StandardFirefighter.class b/build/classes/java/main/model/StandardFireFighter.class similarity index 86% rename from build/classes/java/main/model/StandardFirefighter.class rename to build/classes/java/main/model/StandardFireFighter.class index 55c39846baf5e76796aa09fdd55f52ff13aa28bf..64cb2750980590568fcd3216325692b16f978c77 100644 Binary files a/build/classes/java/main/model/StandardFirefighter.class and b/build/classes/java/main/model/StandardFireFighter.class differ diff --git a/build/classes/java/main/model/TangibleBehavior.class b/build/classes/java/main/model/TangibleBehavior.class index 02e1e1bca2906667c62dbe82da8609e9e78ddf6a..1944332ebc131f7a3deadf53fd22eb0186eb92ee 100644 Binary files a/build/classes/java/main/model/TangibleBehavior.class and b/build/classes/java/main/model/TangibleBehavior.class differ diff --git a/build/classes/java/main/model/Updatable.class b/build/classes/java/main/model/Updatable.class index ca0085ffcc16197c036e8b623d6aa133f687c3a6..cbaa6878f9b5350a9ceca0fe8a50b1c0c1baa2ac 100644 Binary files a/build/classes/java/main/model/Updatable.class and b/build/classes/java/main/model/Updatable.class differ diff --git a/build/classes/java/main/model/Updater.class b/build/classes/java/main/model/Updater.class index 5094364d480368e64c5c482badb41c0fe948d624..79de3b2c4f9b5ed24a3d33bf5211531a3b166e2a 100644 Binary files a/build/classes/java/main/model/Updater.class and b/build/classes/java/main/model/Updater.class differ diff --git a/build/classes/java/main/model/ZoneDependent.class b/build/classes/java/main/model/ZoneDependent.class index 2aae31c665e51fc937c9336a7923a3127d04148b..69efabaada60bf71dcb11bdb8056479bdfd1b606 100644 Binary files a/build/classes/java/main/model/ZoneDependent.class and b/build/classes/java/main/model/ZoneDependent.class differ diff --git a/build/classes/java/main/module-info.class b/build/classes/java/main/module-info.class index f0b28b3b4966d6d1c1eac55f53fff160e8e01b67..a05e120336680c15a80138be7c30617ca4e5473c 100644 Binary files a/build/classes/java/main/module-info.class and b/build/classes/java/main/module-info.class differ diff --git a/build/classes/java/main/util/Position.class b/build/classes/java/main/util/Position.class index afa6140ff267268bf6756e3a97e89a7b9e3ad65c..89bcfc46acba6bd77f0f54570c0b935dce0be942 100644 Binary files a/build/classes/java/main/util/Position.class and b/build/classes/java/main/util/Position.class differ diff --git a/build/classes/java/main/util/TargetStrategy.class b/build/classes/java/main/util/TargetStrategy.class index 91ebbd6ca418ec914ccf852cf42b85aa1df23be1..29d1e02d75754f3461b19603c654e7b3c458f1cb 100644 Binary files a/build/classes/java/main/util/TargetStrategy.class and b/build/classes/java/main/util/TargetStrategy.class differ diff --git a/build/classes/java/main/view/FirefighterGrid.class b/build/classes/java/main/view/FirefighterGrid.class index 05ec18aeff68513e99aa82d1e6ae68a3edf3cccd..831699ca3ca58a17f7b79bad1d1464aeb6d30a4c 100644 Binary files a/build/classes/java/main/view/FirefighterGrid.class and b/build/classes/java/main/view/FirefighterGrid.class differ diff --git a/build/classes/java/main/view/Grid.class b/build/classes/java/main/view/Grid.class index 3db58592fb018dfd2fdd792ea9ad02a2a0d797c1..c4fa5e96b46909e2a89e512f2ad9c2d4d042260c 100644 Binary files a/build/classes/java/main/view/Grid.class and b/build/classes/java/main/view/Grid.class differ diff --git a/build/classes/java/main/view/ViewElement.class b/build/classes/java/main/view/ViewElement.class index 05ff7c3e9ec43e2613194430a978bf1e0c053711..8d66f769cd36f6a121482fb2a77fe4639175b2a5 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/FFBoard.class.uniqueId1 b/build/tmp/compileJava/compileTransaction/stash-dir/FFBoard.class.uniqueId1 new file mode 100644 index 0000000000000000000000000000000000000000..164df9e0ea9152d7ff4ec2a85af2d7b0284069f9 Binary files /dev/null and b/build/tmp/compileJava/compileTransaction/stash-dir/FFBoard.class.uniqueId1 differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/FFboardFiller.class.uniqueId0 b/build/tmp/compileJava/compileTransaction/stash-dir/FFboardFiller.class.uniqueId0 new file mode 100644 index 0000000000000000000000000000000000000000..f6ca48892a657868c312e0f149ec52a9a7fe3fc3 Binary files /dev/null and b/build/tmp/compileJava/compileTransaction/stash-dir/FFboardFiller.class.uniqueId0 differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/module-info.class.uniqueId2 b/build/tmp/compileJava/compileTransaction/stash-dir/module-info.class.uniqueId2 new file mode 100644 index 0000000000000000000000000000000000000000..a05e120336680c15a80138be7c30617ca4e5473c Binary files /dev/null and b/build/tmp/compileJava/compileTransaction/stash-dir/module-info.class.uniqueId2 differ diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin index bd6cd71f525a43641a292bca9740f473d8975ebd..974d8fc4ebaec68d5de9f0f6c5d3d2ac5e2e393f 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/model/ConnexElement.java b/src/main/java/model/ConnexElement.java new file mode 100644 index 0000000000000000000000000000000000000000..5057c05fe82200cef5deb19f43fc82d90daf8f20 --- /dev/null +++ b/src/main/java/model/ConnexElement.java @@ -0,0 +1,5 @@ +package model; + +public interface ConnexElement extends Element { + public ElementFactory getFactory(); +} diff --git a/src/main/java/model/ElementFactory.java b/src/main/java/model/ElementFactory.java index b634d40630f74e226692a8f747864100195917a6..b720cd6d8baa6e3ccc1307ebbf83780714758df0 100644 --- a/src/main/java/model/ElementFactory.java +++ b/src/main/java/model/ElementFactory.java @@ -6,7 +6,6 @@ import java.util.List; import java.util.Map; public interface ElementFactory { - public ModelElement getNewType(BoardData boardData, Position position); public Element getNewElement(BoardData boardData, Position position); } diff --git a/src/main/java/model/FFBoard.java b/src/main/java/model/FFBoard.java index f334cbcdb6041acb667ed3d70d01d3a5fb771a8b..ad2a6752708410f8ef0a6ea549006e49e7b1d098 100644 --- a/src/main/java/model/FFBoard.java +++ b/src/main/java/model/FFBoard.java @@ -31,14 +31,15 @@ public class FFBoard implements Board<List<ModelElement>> { FFUpdater= new FFUpdater(); FFboardFiller filler=new FFboardFiller(); filler.fillBoard(boardData,new int[]{ + 1,//roads + 20,//forests + 10,//rocks + 30,//mountains 5,//firefighter 2,//motorized firefighter 2,//clouds - 30,//mountains - 10,//roads - 20,//forests 10,//fires - 10//rocks + }); } diff --git a/src/main/java/model/FFboardFiller.java b/src/main/java/model/FFboardFiller.java index b552d3bb177f5062ceef7c6aab289c750892b090..d89b9e56f20978ed188346641eb35d664c5160c8 100644 --- a/src/main/java/model/FFboardFiller.java +++ b/src/main/java/model/FFboardFiller.java @@ -5,19 +5,25 @@ import view.ViewElement; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Modifier; +import java.util.ArrayList; +import java.util.List; import java.util.Random; +import java.util.Set; public class FFboardFiller { Random random=new Random(); public void fillBoard(BoardData boardData,int[] counter){ + List<Position> positions= new ArrayList<>(List.copyOf(boardData.getNeighbors().keySet())); for(ViewElement ve:ViewElement.values()){ if (ve!=ViewElement.EMPTY) while(counter[ve.ordinal()]>0) { Element element; + Position p; do { - Position p=new Position(random.nextInt(boardData.getRowCount()), random.nextInt(boardData.getColumnCount())); - element= ve.instanciate(boardData,p); - }while (!boardData.addElement(element)); + p=new Position(random.nextInt(boardData.getRowCount()), random.nextInt(boardData.getColumnCount())); + element= ve.instanciate(boardData,p); + }while (!boardData.addElement(element) && positions.contains(element.getPosition())); + positions.remove(p); counter[ve.ordinal()]--; } } diff --git a/src/main/java/model/FireFactory.java b/src/main/java/model/FireFactory.java index 374a6e5694733138cfb4faa374e11cea4ae3e162..672d44424892d5821ec8fba5d2f61efa299837e9 100644 --- a/src/main/java/model/FireFactory.java +++ b/src/main/java/model/FireFactory.java @@ -11,13 +11,6 @@ public class FireFactory implements ElementFactory{ static{ fireDictionary.put(ModelElement.FOREST,ModelElement.SLOWFIRE); } - public ModelElement getNewType(BoardData boardData, Position position){ - List<ModelElement> s = boardData.getCell(position).Content.stream().map(x -> x.getType()).toList(); - for(Map.Entry<ModelElement,ModelElement> entry: fireDictionary.entrySet()){ - if (s.contains(entry.getKey())) return entry.getValue(); - } - return ModelElement.FIRE; - } public Element getNewElement(BoardData boardData, Position position){ List<ModelElement> s = boardData.getCell(position).Content.stream().map(x -> x.getType()).toList(); for(Map.Entry<ModelElement,ModelElement> entry: fireDictionary.entrySet()){ diff --git a/src/main/java/model/Road.java b/src/main/java/model/Road.java index 29e63bdbe77da7d78fe6683826522f9dca678b67..d32acffcf90444b2cc18631c751643cc89a3f7b5 100644 --- a/src/main/java/model/Road.java +++ b/src/main/java/model/Road.java @@ -2,9 +2,15 @@ package model; import util.Position; -public class Road extends Land implements Element { +public class Road extends Land implements Element,ConnexElement { + public static ElementFactory factory=new RoadFactory(); public Road(Position position) { super(position); type=ModelElement.ROAD; } + + @Override + public ElementFactory getFactory() { + return null; + } } diff --git a/src/main/java/model/RoadFactory.java b/src/main/java/model/RoadFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..75da23fd9dd7bb8b4d5212955014c5cd483c99df --- /dev/null +++ b/src/main/java/model/RoadFactory.java @@ -0,0 +1,34 @@ +package model; + +import util.Position; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Random; + +public class RoadFactory implements ElementFactory{ + Random random = new Random(); + + public Element getNewElement(BoardData boardData, Position position){ + int[][] dir={{0,1},{0,-1},{1,0},{-1,0}}; + int[] currentDirection1,currentDirection2; + do{ + currentDirection1 = dir[random.nextInt(4)]; + currentDirection2 = dir[random.nextInt(4)]; + }while(currentDirection1==currentDirection2); + + for (int i = position.row(),j= position.column(); + i < boardData.getRowCount() && i >= 0 && j < boardData.getColumnCount() && j >= 0 ; + i+=currentDirection1[0],j+=currentDirection1[1]) { + System.out.println(i+","+j); + boardData.addElement(new Road(new Position(i,j))); + } + for (int i = position.row(),j= position.column(); + i < boardData.getRowCount() && i >= 0 && j < boardData.getColumnCount() && j >= 0 ; + i+=currentDirection2[0],j+=currentDirection2[1]) { + boardData.addElement(new Road(new Position(i,j))); + } + return new Road(position); + } +} diff --git a/src/main/java/view/ViewElement.java b/src/main/java/view/ViewElement.java index 6d0b17a5a32766633bb40868ed6e3949e57872d7..f49389cc22c0a8a03808bfe4ba2416e5f7057dde 100644 --- a/src/main/java/view/ViewElement.java +++ b/src/main/java/view/ViewElement.java @@ -7,15 +7,14 @@ import util.Position; import java.lang.reflect.InvocationTargetException; public enum ViewElement { - - FIREFIGHTER(Color.BLUE, StandardFireFighter.class), + ROAD(Color.BLACK, Road.class, Road.factory), + FOREST(Color.DARKGREEN, Forest.class), + ROCK(Color.GREEN, Rock.class), + MOUNTAIN(Color.DARKGRAY, Mountain.class), + FIREFIGHTER(Color.LIGHTBLUE, StandardFireFighter.class), MOTORIZEDFIREFIGHTER(Color.DARKBLUE, MotorizedFireFighter.class), - CLOUD(Color.GRAY, Cloud.class), - MOUNTAIN(Color.BROWN, Mountain.class), - ROAD(Color.BLACK, Road.class), - FOREST(Color.GREEN, Forest.class), + CLOUD(Color.LIGHTGRAY, Cloud.class), FIRE(Color.RED,Fire.class,Fire.factory), - ROCK(Color.DARKGOLDENROD, Rock.class), EMPTY(Color.WHITE, null); final Color color;