diff --git a/.gradle/8.10.2/executionHistory/executionHistory.bin b/.gradle/8.10.2/executionHistory/executionHistory.bin index c46e15bd854f8e4e06bb1f69e356793676d553ff..79b0d723d31ff37e4eea1d84977005e31f62efe3 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 8f2e2b22a73cbbc959fa8af0ea18b150e32d3fe2..307db83672e538674ed8b6338798b3a55784fdeb 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 29469af9bfec929b3ec262caa5d5dd5f3c1f200c..79e3df825b257fac852c91d6262a46d7e5b7da21 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 b687070073f9e85118e808cb30bf176a52616281..58bede2f2faaa5a1bc1493b8d9cbd7f542fefa91 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 b472b2cc413fd0fd118ee8dac74ca66214808905..4aad651704930416be0bbd4272f5e3bcd5bedc3a 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 5cee72757e140b9a4d5fc93caf5dfb26900fdc9f..ff44e921e770cbad55d19a4ae5b5a927c45f57e2 100644 Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe index f6feff7a4a86dd2b895588b1211eaad6fc39b658..a3d4a94b71e9983be62a435feb3614d4a70768dc 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 5460b69e4ad124b6ba3858a79d483e32eb5cc8da..725bc8a981235faf4b67dbf84001e86c19fb9060 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/BoardData.class b/build/classes/java/main/model/BoardData.class index 07eb07f10a711f6f8ef0f19cf60c4172975d4ba7..5ecb3fd49ec9702999371a36debb898ef6c96aed 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/ChargerBehavior.class b/build/classes/java/main/model/ChargerBehavior.class deleted file mode 100644 index 4238416ce3f365b11d891c5a082fe00394159839..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/ChargerBehavior.class and /dev/null differ diff --git a/build/classes/java/main/model/CloudBehavior.class b/build/classes/java/main/model/CloudBehavior.class deleted file mode 100644 index c2d7aa58956927feef07442c96829a6a395b0877..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/CloudBehavior.class and /dev/null differ diff --git a/build/classes/java/main/model/Element.class b/build/classes/java/main/model/Element.class index 8e2eb1350365848b15dcaf78c2b55cde5c7ddfb1..4e131073a6ff16adce78c3e911ce85d4d22fdef6 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/FFBehavior.class b/build/classes/java/main/model/FFBehavior.class deleted file mode 100644 index 291fe9094bbfeaa70d5df89ff86cc3f4924868ba..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/FFBehavior.class and /dev/null differ diff --git a/build/classes/java/main/model/FFBoard.class b/build/classes/java/main/model/FFBoard.class deleted file mode 100644 index 07ae6a6b5b6269f978eae54e251a9faa5b1be31f..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/FFBoard.class and /dev/null differ diff --git a/build/classes/java/main/model/FFBoardData.class b/build/classes/java/main/model/FFBoardData.class deleted file mode 100644 index 083bf54eef3faaf8e51274d1d229a5ee5f7d084d..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/FFBoardData.class and /dev/null differ diff --git a/build/classes/java/main/model/FFUpdater.class b/build/classes/java/main/model/FFUpdater.class deleted file mode 100644 index 3e585d7404d70b661e216810cc914f7a9c8d105b..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/FFUpdater.class and /dev/null differ diff --git a/build/classes/java/main/model/Fire.class b/build/classes/java/main/model/Fire.class deleted file mode 100644 index 360986a08a7cb0be7450bcd306c3e8e7a6573fd0..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/Fire.class and /dev/null differ diff --git a/build/classes/java/main/model/FireBehavior.class b/build/classes/java/main/model/FireBehavior.class deleted file mode 100644 index a63c2a3b6535781cf1e152bbb4645a4accf42d73..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/FireBehavior.class and /dev/null differ diff --git a/build/classes/java/main/model/FireFactory.class b/build/classes/java/main/model/FireFactory.class deleted file mode 100644 index 13b6a7ffccc0f19df29c8c02b35aa50668a243d6..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/FireFactory.class and /dev/null differ diff --git a/build/classes/java/main/model/FireFighter.class b/build/classes/java/main/model/FireFighter.class deleted file mode 100644 index 1e2297e2ca73c58649903e7346f5ad3fa4f6f0b8..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/FireFighter.class and /dev/null differ diff --git a/build/classes/java/main/model/FireFighterBehavior.class b/build/classes/java/main/model/FireFighterBehavior.class deleted file mode 100644 index 2bca188bdc18f223c28a8b7a8294d8cb2036cb8f..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/FireFighterBehavior.class and /dev/null differ diff --git a/build/classes/java/main/model/Forest.class b/build/classes/java/main/model/Forest.class deleted file mode 100644 index 354d9304df5d6afe682c51ea4339f6f37a45017e..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/Forest.class and /dev/null differ diff --git a/build/classes/java/main/model/Land.class b/build/classes/java/main/model/Land.class deleted file mode 100644 index cc196ad2cb290b7506aebcb8074e7378df7e0631..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/Land.class and /dev/null differ diff --git a/build/classes/java/main/model/ModelElement.class b/build/classes/java/main/model/ModelElement.class deleted file mode 100644 index d3db593cc6c61187e3068ed32b7fe61f64ac09e4..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/ModelElement.class and /dev/null differ diff --git a/build/classes/java/main/model/MotorizedFireFighter.class b/build/classes/java/main/model/MotorizedFireFighter.class deleted file mode 100644 index 8f8c31c07c776f0bb418023db3a336f14f691707..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/MotorizedFireFighter.class and /dev/null differ diff --git a/build/classes/java/main/model/Mountain.class b/build/classes/java/main/model/Mountain.class deleted file mode 100644 index 55d91ac26b769014e955292d6c7e4faa355cd59e..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/Mountain.class and /dev/null differ diff --git a/build/classes/java/main/model/Printable.class b/build/classes/java/main/model/Printable.class deleted file mode 100644 index 4a4da6580c0bf74116ba0d997894b5afc5b6981a..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/Printable.class and /dev/null differ diff --git a/build/classes/java/main/model/QuickFire.class b/build/classes/java/main/model/QuickFire.class deleted file mode 100644 index 1ac9b326dbb7181d986e03b52463b3233ce6b556..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/QuickFire.class and /dev/null differ diff --git a/build/classes/java/main/model/Road.class b/build/classes/java/main/model/Road.class deleted file mode 100644 index 2e08aedd4f1bc69add1182c39883ce9eeed2d03e..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/Road.class and /dev/null differ diff --git a/build/classes/java/main/model/RoadFactory.class b/build/classes/java/main/model/RoadFactory.class deleted file mode 100644 index a4a505e1971afaf8930b6866d401267bed2b6359..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/RoadFactory.class and /dev/null differ diff --git a/build/classes/java/main/model/Rock.class b/build/classes/java/main/model/Rock.class deleted file mode 100644 index 41ee410a25e815c5d9cb896015db1ce726e96037..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/Rock.class and /dev/null differ diff --git a/build/classes/java/main/model/RockBehavior.class b/build/classes/java/main/model/RockBehavior.class deleted file mode 100644 index 8368e7bb46ff97155f4bdbaaeca48fcd19e2da9e..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/RockBehavior.class and /dev/null differ diff --git a/build/classes/java/main/model/StandardFire.class b/build/classes/java/main/model/StandardFire.class deleted file mode 100644 index 81358e7c16260b8d1d77d2d7a0650163f6d5df8f..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/StandardFire.class and /dev/null differ diff --git a/build/classes/java/main/model/StandardFireFighter.class b/build/classes/java/main/model/StandardFireFighter.class deleted file mode 100644 index 55c39846baf5e76796aa09fdd55f52ff13aa28bf..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/StandardFireFighter.class and /dev/null differ diff --git a/build/classes/java/main/model/TangibleBehavior.class b/build/classes/java/main/model/TangibleBehavior.class deleted file mode 100644 index 02e1e1bca2906667c62dbe82da8609e9e78ddf6a..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/TangibleBehavior.class and /dev/null differ diff --git a/build/classes/java/main/model/ChargeTarget.class b/build/classes/java/main/model/elementTokens/ChargeTarget.class similarity index 68% rename from build/classes/java/main/model/ChargeTarget.class rename to build/classes/java/main/model/elementTokens/ChargeTarget.class index 7d6138fb55f9758dc3a69a92972c313c6360a1f9..3504616201080376dfac3ad2e31d51764da2e29d 100644 Binary files a/build/classes/java/main/model/ChargeTarget.class and b/build/classes/java/main/model/elementTokens/ChargeTarget.class differ diff --git a/build/classes/java/main/model/ConnexElement.class b/build/classes/java/main/model/elementTokens/ConnexElement.class similarity index 52% rename from build/classes/java/main/model/ConnexElement.class rename to build/classes/java/main/model/elementTokens/ConnexElement.class index 009ee88fb0b1b2fb782a0dcf081694bb509ef62e..3129347567bb5858e80e647a1149460922eeffbb 100644 Binary files a/build/classes/java/main/model/ConnexElement.class and b/build/classes/java/main/model/elementTokens/ConnexElement.class differ diff --git a/build/classes/java/main/model/elementTokens/Printable.class b/build/classes/java/main/model/elementTokens/Printable.class new file mode 100644 index 0000000000000000000000000000000000000000..03cb5b5ed644d4abdec319524b85bdda7b8f88f1 Binary files /dev/null and b/build/classes/java/main/model/elementTokens/Printable.class differ diff --git a/build/classes/java/main/model/Updatable.class b/build/classes/java/main/model/elementTokens/Updatable.class similarity index 72% rename from build/classes/java/main/model/Updatable.class rename to build/classes/java/main/model/elementTokens/Updatable.class index ca0085ffcc16197c036e8b623d6aa133f687c3a6..af10710a0343086bf1d8952096c056d89064eefe 100644 Binary files a/build/classes/java/main/model/Updatable.class and b/build/classes/java/main/model/elementTokens/Updatable.class differ diff --git a/build/classes/java/main/model/ZoneDependent.class b/build/classes/java/main/model/elementTokens/ZoneDependent.class similarity index 57% rename from build/classes/java/main/model/ZoneDependent.class rename to build/classes/java/main/model/elementTokens/ZoneDependent.class index 2aae31c665e51fc937c9336a7923a3127d04148b..1693f21c87060c8aef493e964fac32ea9a8277bd 100644 Binary files a/build/classes/java/main/model/ZoneDependent.class and b/build/classes/java/main/model/elementTokens/ZoneDependent.class differ diff --git a/build/classes/java/main/model/Cell.class b/build/classes/java/main/model/firefighter/Cell.class similarity index 51% rename from build/classes/java/main/model/Cell.class rename to build/classes/java/main/model/firefighter/Cell.class index c5b5ebd6bb02a92a57e1e05dacdf52857fba1e74..e86d6fd1e276fec06f0c963885a2b5a611e619ce 100644 Binary files a/build/classes/java/main/model/Cell.class and b/build/classes/java/main/model/firefighter/Cell.class differ diff --git a/build/classes/java/main/model/firefighter/FFBehavior.class b/build/classes/java/main/model/firefighter/FFBehavior.class new file mode 100644 index 0000000000000000000000000000000000000000..e4fae041b0ed6b7626683259fad57a27044f9449 Binary files /dev/null and b/build/classes/java/main/model/firefighter/FFBehavior.class differ diff --git a/build/classes/java/main/model/firefighter/FFBoard.class b/build/classes/java/main/model/firefighter/FFBoard.class new file mode 100644 index 0000000000000000000000000000000000000000..bb69b25a7fc67a5c9e5a369d9400532907aafa1d Binary files /dev/null and b/build/classes/java/main/model/firefighter/FFBoard.class differ diff --git a/build/classes/java/main/model/firefighter/FFBoardData.class b/build/classes/java/main/model/firefighter/FFBoardData.class new file mode 100644 index 0000000000000000000000000000000000000000..1de7ad925e48fd349ced009e30664cf491578a2b Binary files /dev/null and b/build/classes/java/main/model/firefighter/FFBoardData.class differ diff --git a/build/classes/java/main/model/firefighter/FFUpdater.class b/build/classes/java/main/model/firefighter/FFUpdater.class new file mode 100644 index 0000000000000000000000000000000000000000..0d3fecd7515128679f788a66768f60b762d7450a Binary files /dev/null and b/build/classes/java/main/model/firefighter/FFUpdater.class differ diff --git a/build/classes/java/main/model/firefighter/FFboardFiller.class b/build/classes/java/main/model/firefighter/FFboardFiller.class new file mode 100644 index 0000000000000000000000000000000000000000..0a18c45b10b7a0191181ab4444d4ecddfb42808b Binary files /dev/null and b/build/classes/java/main/model/firefighter/FFboardFiller.class differ diff --git a/build/classes/java/main/model/firefighter/ModelElement.class b/build/classes/java/main/model/firefighter/ModelElement.class new file mode 100644 index 0000000000000000000000000000000000000000..59bad8e1e6896f95c620a867b5829c2a4bc251f4 Binary files /dev/null and b/build/classes/java/main/model/firefighter/ModelElement.class differ diff --git a/build/classes/java/main/model/firefighter/behaviors/CloudBehavior.class b/build/classes/java/main/model/firefighter/behaviors/CloudBehavior.class new file mode 100644 index 0000000000000000000000000000000000000000..f2999e416ccfedf6152d1f7a5e548c53117a53e0 Binary files /dev/null and b/build/classes/java/main/model/firefighter/behaviors/CloudBehavior.class differ diff --git a/build/classes/java/main/model/firefighter/behaviors/FireBehavior.class b/build/classes/java/main/model/firefighter/behaviors/FireBehavior.class new file mode 100644 index 0000000000000000000000000000000000000000..0af75da9d61e3f3166c42263024b4869c4883fd5 Binary files /dev/null and b/build/classes/java/main/model/firefighter/behaviors/FireBehavior.class differ diff --git a/build/classes/java/main/model/firefighter/behaviors/FireFighterBehavior.class b/build/classes/java/main/model/firefighter/behaviors/FireFighterBehavior.class new file mode 100644 index 0000000000000000000000000000000000000000..b7c4b6baa792bfe0f89471a68c0222da55288d43 Binary files /dev/null and b/build/classes/java/main/model/firefighter/behaviors/FireFighterBehavior.class differ diff --git a/build/classes/java/main/model/firefighter/behaviors/RockBehavior.class b/build/classes/java/main/model/firefighter/behaviors/RockBehavior.class new file mode 100644 index 0000000000000000000000000000000000000000..37e1e3e5884ebb52c8c6e579c694e4e320451235 Binary files /dev/null and b/build/classes/java/main/model/firefighter/behaviors/RockBehavior.class differ diff --git a/build/classes/java/main/model/Cloud.class b/build/classes/java/main/model/firefighter/elements/Cloud.class similarity index 50% rename from build/classes/java/main/model/Cloud.class rename to build/classes/java/main/model/firefighter/elements/Cloud.class index 8abe5c73fad43333b2acc6717f97fb586a2837cf..6ff5a5b8934d063f9dea4e981282302ad1988ee3 100644 Binary files a/build/classes/java/main/model/Cloud.class and b/build/classes/java/main/model/firefighter/elements/Cloud.class differ diff --git a/build/classes/java/main/model/firefighter/elements/Fire.class b/build/classes/java/main/model/firefighter/elements/Fire.class new file mode 100644 index 0000000000000000000000000000000000000000..bc112da7789e82cdd1fc00b3bcf0ec26a35cdab1 Binary files /dev/null and b/build/classes/java/main/model/firefighter/elements/Fire.class differ diff --git a/build/classes/java/main/model/firefighter/elements/FireFighter.class b/build/classes/java/main/model/firefighter/elements/FireFighter.class new file mode 100644 index 0000000000000000000000000000000000000000..20616250a287bd3a56d845d99422ee50fffdcc37 Binary files /dev/null and b/build/classes/java/main/model/firefighter/elements/FireFighter.class differ diff --git a/build/classes/java/main/model/firefighter/elements/Forest.class b/build/classes/java/main/model/firefighter/elements/Forest.class new file mode 100644 index 0000000000000000000000000000000000000000..bdf0bb3c4786f091837f0981528313c070d8b4e9 Binary files /dev/null and b/build/classes/java/main/model/firefighter/elements/Forest.class differ diff --git a/build/classes/java/main/model/firefighter/elements/Land.class b/build/classes/java/main/model/firefighter/elements/Land.class new file mode 100644 index 0000000000000000000000000000000000000000..3f654275a0745607259319e8d1180c8141ecea79 Binary files /dev/null and b/build/classes/java/main/model/firefighter/elements/Land.class differ diff --git a/build/classes/java/main/model/firefighter/elements/MotorizedFireFighter.class b/build/classes/java/main/model/firefighter/elements/MotorizedFireFighter.class new file mode 100644 index 0000000000000000000000000000000000000000..c9e3f019f0719a6393176887f88b9b0d261595f6 Binary files /dev/null and b/build/classes/java/main/model/firefighter/elements/MotorizedFireFighter.class differ diff --git a/build/classes/java/main/model/firefighter/elements/Mountain.class b/build/classes/java/main/model/firefighter/elements/Mountain.class new file mode 100644 index 0000000000000000000000000000000000000000..557ae945ee6f625190b1d30b748a5d55ebc04932 Binary files /dev/null and b/build/classes/java/main/model/firefighter/elements/Mountain.class differ diff --git a/build/classes/java/main/model/firefighter/elements/QuickFire.class b/build/classes/java/main/model/firefighter/elements/QuickFire.class new file mode 100644 index 0000000000000000000000000000000000000000..7511097f47850f71541b1cc44413e5456a086d26 Binary files /dev/null and b/build/classes/java/main/model/firefighter/elements/QuickFire.class differ diff --git a/build/classes/java/main/model/firefighter/elements/Road.class b/build/classes/java/main/model/firefighter/elements/Road.class new file mode 100644 index 0000000000000000000000000000000000000000..812d9321d19e026d3be6f676d9001cf9025642f1 Binary files /dev/null and b/build/classes/java/main/model/firefighter/elements/Road.class differ diff --git a/build/classes/java/main/model/firefighter/elements/Rock.class b/build/classes/java/main/model/firefighter/elements/Rock.class new file mode 100644 index 0000000000000000000000000000000000000000..ab7626815300e9357ddfdaf44838931b60bc0d65 Binary files /dev/null and b/build/classes/java/main/model/firefighter/elements/Rock.class differ diff --git a/build/classes/java/main/model/firefighter/elements/StandardFire.class b/build/classes/java/main/model/firefighter/elements/StandardFire.class new file mode 100644 index 0000000000000000000000000000000000000000..ec18ebd1cbd96d461fc6e91a9e3a47b404d04b07 Binary files /dev/null and b/build/classes/java/main/model/firefighter/elements/StandardFire.class differ diff --git a/build/classes/java/main/model/firefighter/elements/StandardFireFighter.class b/build/classes/java/main/model/firefighter/elements/StandardFireFighter.class new file mode 100644 index 0000000000000000000000000000000000000000..06dcbc0ddd250c4a23bcc488d0113268548f9620 Binary files /dev/null and b/build/classes/java/main/model/firefighter/elements/StandardFireFighter.class differ diff --git a/build/classes/java/main/model/firefighter/factories/FireFactory.class b/build/classes/java/main/model/firefighter/factories/FireFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..098813a0c87d9ce0784ea8490f698c7190ea7772 Binary files /dev/null and b/build/classes/java/main/model/firefighter/factories/FireFactory.class differ diff --git a/build/classes/java/main/model/firefighter/factories/RoadFactory.class b/build/classes/java/main/model/firefighter/factories/RoadFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..1a24a970eb3c45593d6bb6f3223020d86381ac8b Binary files /dev/null and b/build/classes/java/main/model/firefighter/factories/RoadFactory.class differ diff --git a/build/classes/java/main/model/genericBehavior/ChargerBehavior.class b/build/classes/java/main/model/genericBehavior/ChargerBehavior.class new file mode 100644 index 0000000000000000000000000000000000000000..a87e64a382904905e3ae820d5b023d0e750d5fa1 Binary files /dev/null and b/build/classes/java/main/model/genericBehavior/ChargerBehavior.class differ diff --git a/build/classes/java/main/model/RemoverBehavior.class b/build/classes/java/main/model/genericBehavior/RemoverBehavior.class similarity index 66% rename from build/classes/java/main/model/RemoverBehavior.class rename to build/classes/java/main/model/genericBehavior/RemoverBehavior.class index be0680b2517d2851ae5e140a9a5d233c854ae81a..c65c2b9c3873764c75e84043991e64a6035c561c 100644 Binary files a/build/classes/java/main/model/RemoverBehavior.class and b/build/classes/java/main/model/genericBehavior/RemoverBehavior.class differ diff --git a/build/classes/java/main/model/genericBehavior/TangibleBehavior.class b/build/classes/java/main/model/genericBehavior/TangibleBehavior.class new file mode 100644 index 0000000000000000000000000000000000000000..37567a968a82d2a3745640193908bc180ae5352b Binary files /dev/null and b/build/classes/java/main/model/genericBehavior/TangibleBehavior.class differ diff --git a/build/classes/java/main/view/ViewElement.class b/build/classes/java/main/view/ViewElement.class index ac4ba6fa8c7ba43a1de3a562d2867c1f129d1fff..934b0ab6c6bdd0f5fa313bb7f0f00074b7d7e26d 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.uniqueId2 b/build/tmp/compileJava/compileTransaction/stash-dir/FFBoard.class.uniqueId2 new file mode 100644 index 0000000000000000000000000000000000000000..bb69b25a7fc67a5c9e5a369d9400532907aafa1d Binary files /dev/null and b/build/tmp/compileJava/compileTransaction/stash-dir/FFBoard.class.uniqueId2 differ diff --git a/build/classes/java/main/model/FFboardFiller.class b/build/tmp/compileJava/compileTransaction/stash-dir/FFboardFiller.class.uniqueId0 similarity index 58% rename from build/classes/java/main/model/FFboardFiller.class rename to build/tmp/compileJava/compileTransaction/stash-dir/FFboardFiller.class.uniqueId0 index 11c72f5ec52221d0df0e243cf8394242f6bea792..04c93ff60c8f5e70125ba22c9fb2351d3ccb0a26 100644 Binary files a/build/classes/java/main/model/FFboardFiller.class and b/build/tmp/compileJava/compileTransaction/stash-dir/FFboardFiller.class.uniqueId0 differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/module-info.class.uniqueId1 b/build/tmp/compileJava/compileTransaction/stash-dir/module-info.class.uniqueId1 new file mode 100644 index 0000000000000000000000000000000000000000..f0b28b3b4966d6d1c1eac55f53fff160e8e01b67 Binary files /dev/null and b/build/tmp/compileJava/compileTransaction/stash-dir/module-info.class.uniqueId1 differ diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin index bcdd475d8fa9ab9d476b27463bf53c14f1b7aa66..d636099d99cb14df4b364c87e61a0b95010edce9 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 5aa4624c3fa57190544753c551538faca4affa00..d23f4b46d06dedadf365cfcec786f858bacd70cf 100644 --- a/src/main/java/controller/Controller.java +++ b/src/main/java/controller/Controller.java @@ -13,8 +13,8 @@ import javafx.scene.control.ToggleGroup; import javafx.util.Duration; import javafx.util.Pair; import model.Board; -import model.ModelElement; -import model.FFBoard; +import model.firefighter.ModelElement; +import model.firefighter.FFBoard; import util.Position; import view.Grid; import view.ViewElement; diff --git a/src/main/java/model/BoardData.java b/src/main/java/model/BoardData.java index 2cad06371a2db77d49df8292fcb06e1b96f55d4a..78f4a6b30db303618045dda3964ce83e1f487329 100644 --- a/src/main/java/model/BoardData.java +++ b/src/main/java/model/BoardData.java @@ -1,5 +1,6 @@ package model; +import model.firefighter.Cell; import util.Position; import java.util.List; diff --git a/src/main/java/model/Element.java b/src/main/java/model/Element.java index 014f446ae0ca7a4e62c824edf8762d06286c1a8c..b39cca08c8f681fc8c1c71ffd8cacee47c336e81 100644 --- a/src/main/java/model/Element.java +++ b/src/main/java/model/Element.java @@ -1,5 +1,6 @@ package model; +import model.firefighter.ModelElement; import util.Position; public interface Element { diff --git a/src/main/java/model/QuickFire.java b/src/main/java/model/QuickFire.java deleted file mode 100644 index d70ec9f3f465ac157a1cdb4ab74a34e6ad7d42ae..0000000000000000000000000000000000000000 --- a/src/main/java/model/QuickFire.java +++ /dev/null @@ -1,9 +0,0 @@ -package model; - -import util.Position; - -public class QuickFire extends Fire implements Updatable{ - public QuickFire(Position position) { - super(1, ModelElement.SLOWFIRE, position); - } -} diff --git a/src/main/java/model/RemoverBehavior.java b/src/main/java/model/RemoverBehavior.java deleted file mode 100644 index 07190d26c14befed97a5d2ad6c36539a96ced31e..0000000000000000000000000000000000000000 --- a/src/main/java/model/RemoverBehavior.java +++ /dev/null @@ -1,10 +0,0 @@ -package model; - -import util.Position; - -import java.util.List; - -public interface RemoverBehavior<E> extends Behavior { - public void extinguish(BoardData boardData,Position position); - -} diff --git a/src/main/java/model/Road.java b/src/main/java/model/Road.java deleted file mode 100644 index a769a7f01ad56fcd1ffc23924d15fc6353cfaeb0..0000000000000000000000000000000000000000 --- a/src/main/java/model/Road.java +++ /dev/null @@ -1,16 +0,0 @@ -package model; - -import util.Position; - -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 factory; - } -} diff --git a/src/main/java/model/TangibleBehavior.java b/src/main/java/model/TangibleBehavior.java deleted file mode 100644 index 8aaa13c3f58d34411a364d3289508851437ac5bf..0000000000000000000000000000000000000000 --- a/src/main/java/model/TangibleBehavior.java +++ /dev/null @@ -1,10 +0,0 @@ -package model; - -import util.Position; - -import java.util.List; - -public interface TangibleBehavior<E> extends Behavior { - public List<E> getObstacles(); - public Boolean isLegal(BoardData boardData,Position position); -} diff --git a/src/main/java/model/ChargeTarget.java b/src/main/java/model/elementTokens/ChargeTarget.java similarity index 84% rename from src/main/java/model/ChargeTarget.java rename to src/main/java/model/elementTokens/ChargeTarget.java index 3fbab15bce0218b31ce61515fd590ad3389dadec..e09d0738d55b65da0c2ef88f9de9df09a5de2461 100644 --- a/src/main/java/model/ChargeTarget.java +++ b/src/main/java/model/elementTokens/ChargeTarget.java @@ -1,4 +1,4 @@ -package model; +package model.elementTokens; public interface ChargeTarget { public int getCounter(); diff --git a/src/main/java/model/ConnexElement.java b/src/main/java/model/elementTokens/ConnexElement.java similarity index 53% rename from src/main/java/model/ConnexElement.java rename to src/main/java/model/elementTokens/ConnexElement.java index 5057c05fe82200cef5deb19f43fc82d90daf8f20..4dc5a1869ce5d281d35779e07387ed5b0efaf33a 100644 --- a/src/main/java/model/ConnexElement.java +++ b/src/main/java/model/elementTokens/ConnexElement.java @@ -1,4 +1,7 @@ -package model; +package model.elementTokens; + +import model.Element; +import model.ElementFactory; public interface ConnexElement extends Element { public ElementFactory getFactory(); diff --git a/src/main/java/model/Printable.java b/src/main/java/model/elementTokens/Printable.java similarity index 73% rename from src/main/java/model/Printable.java rename to src/main/java/model/elementTokens/Printable.java index ee65b3a57e88f73d3153e5c8e51f2f9ddf3c9b52..4802d711d5bbd6c14ac0967efc78fde81ee22ea7 100644 --- a/src/main/java/model/Printable.java +++ b/src/main/java/model/elementTokens/Printable.java @@ -1,4 +1,4 @@ -package model; +package model.elementTokens; import util.Position; diff --git a/src/main/java/model/Updatable.java b/src/main/java/model/elementTokens/Updatable.java similarity index 72% rename from src/main/java/model/Updatable.java rename to src/main/java/model/elementTokens/Updatable.java index a40eaafe0053fe285c918778f71295cc38aaecb6..d406deabace1e3d05d9b40ddaf42820197c7a162 100644 --- a/src/main/java/model/Updatable.java +++ b/src/main/java/model/elementTokens/Updatable.java @@ -1,5 +1,6 @@ -package model; +package model.elementTokens; +import model.BoardData; import util.Position; import java.util.List; diff --git a/src/main/java/model/ZoneDependent.java b/src/main/java/model/elementTokens/ZoneDependent.java similarity index 71% rename from src/main/java/model/ZoneDependent.java rename to src/main/java/model/elementTokens/ZoneDependent.java index 19e501e1a244edf9b8f555d6e3848ef9dac643c4..b1a9283e4f033023fae5a1b590aa9f3ac7e1d4ff 100644 --- a/src/main/java/model/ZoneDependent.java +++ b/src/main/java/model/elementTokens/ZoneDependent.java @@ -1,5 +1,6 @@ -package model; +package model.elementTokens; +import model.ElementFactory; import util.Position; import java.util.List; diff --git a/src/main/java/model/Cell.java b/src/main/java/model/firefighter/Cell.java similarity index 71% rename from src/main/java/model/Cell.java rename to src/main/java/model/firefighter/Cell.java index 4430300eeef30376deb2419f264fff8a1ed331ad..726044b7c4f2843487410070d7696a3537d52ca9 100644 --- a/src/main/java/model/Cell.java +++ b/src/main/java/model/firefighter/Cell.java @@ -1,4 +1,4 @@ -package model; +package model.firefighter; import util.Position; @@ -6,8 +6,8 @@ import java.util.ArrayList; import java.util.List; public class Cell <E>{ - List<E> Content; - Position position; + public List<E> Content; + public Position position; public Cell(Position position) { this.position=position; diff --git a/src/main/java/model/FFBehavior.java b/src/main/java/model/firefighter/FFBehavior.java similarity index 74% rename from src/main/java/model/FFBehavior.java rename to src/main/java/model/firefighter/FFBehavior.java index 744a30c8b0c802011c595d57e5264b8fdf54dfb1..5db4eb7a6c56ab62dd6673b22fe1344793a34df4 100644 --- a/src/main/java/model/FFBehavior.java +++ b/src/main/java/model/firefighter/FFBehavior.java @@ -1,5 +1,7 @@ -package model; +package model.firefighter; +import model.Behavior; +import model.Element; import util.Position; import java.util.ArrayList; diff --git a/src/main/java/model/FFBoard.java b/src/main/java/model/firefighter/FFBoard.java similarity index 95% rename from src/main/java/model/FFBoard.java rename to src/main/java/model/firefighter/FFBoard.java index ad2a6752708410f8ef0a6ea549006e49e7b1d098..06159263a94b0f5fa55925c25556d4f444a6cebb 100644 --- a/src/main/java/model/FFBoard.java +++ b/src/main/java/model/firefighter/FFBoard.java @@ -1,9 +1,10 @@ -package model; +package model.firefighter; +import model.Board; +import model.BoardData; +import model.Element; import util.Position; -import util.TargetStrategy; -import java.lang.reflect.InvocationTargetException; import java.util.*; diff --git a/src/main/java/model/FFBoardData.java b/src/main/java/model/firefighter/FFBoardData.java similarity index 94% rename from src/main/java/model/FFBoardData.java rename to src/main/java/model/firefighter/FFBoardData.java index fe999bf185001a2a0685820ad79666127fd8ba11..508a9f585beef2c93bd01dcd9c7809a7586709f5 100644 --- a/src/main/java/model/FFBoardData.java +++ b/src/main/java/model/firefighter/FFBoardData.java @@ -1,10 +1,13 @@ -package model; +package model.firefighter; +import model.BoardData; +import model.Element; +import model.genericBehavior.TangibleBehavior; import util.Position; import java.util.*; -public class FFBoardData implements BoardData{ +public class FFBoardData implements BoardData { private List<List<Element>> elementList; private Map<Position, List<Position>> neighbors = new HashMap<Position, List<Position>>(); diff --git a/src/main/java/model/FFUpdater.java b/src/main/java/model/firefighter/FFUpdater.java similarity index 87% rename from src/main/java/model/FFUpdater.java rename to src/main/java/model/firefighter/FFUpdater.java index f3f8ab4600de709c4cbdaf1311fdb20e16437716..80ddbd78d9b655cdec376a7b81940161482faa55 100644 --- a/src/main/java/model/FFUpdater.java +++ b/src/main/java/model/firefighter/FFUpdater.java @@ -1,9 +1,12 @@ -package model; +package model.firefighter; +import model.BoardData; +import model.Element; +import model.elementTokens.Updatable; +import model.Updater; import util.Position; import java.util.ArrayList; -import java.util.Collection; import java.util.List; public class FFUpdater implements Updater { diff --git a/src/main/java/model/FFboardFiller.java b/src/main/java/model/firefighter/FFboardFiller.java similarity index 81% rename from src/main/java/model/FFboardFiller.java rename to src/main/java/model/firefighter/FFboardFiller.java index 6669df0c950b0919d27eb4d554932e459557dd0d..87e82be0906bcb991a0a7db0a50f0c25cfe28333 100644 --- a/src/main/java/model/FFboardFiller.java +++ b/src/main/java/model/firefighter/FFboardFiller.java @@ -1,18 +1,18 @@ -package model; +package model.firefighter; +import model.BoardData; +import model.elementTokens.ConnexElement; +import model.Element; import util.Position; 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){ + 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) @@ -25,7 +25,7 @@ public class FFboardFiller { }while (!boardData.addElement(element)); if (element instanceof ConnexElement) { positions.removeAll(boardData.getElements().get(element.getType().ordinal()).stream().map(x ->x.getPosition()).toList()); - System.out.println("0");} + } positions.remove(p); counter[ve.ordinal()]--; } diff --git a/src/main/java/model/ModelElement.java b/src/main/java/model/firefighter/ModelElement.java similarity index 91% rename from src/main/java/model/ModelElement.java rename to src/main/java/model/firefighter/ModelElement.java index f9c7bcf9bd1f1d6e9b59ba9bffe8784d7b89bc77..228a6865cb8d9ed2d9813dcdbbe0173315ea0788 100644 --- a/src/main/java/model/ModelElement.java +++ b/src/main/java/model/firefighter/ModelElement.java @@ -1,5 +1,9 @@ -package model; +package model.firefighter; +import model.Element; +import model.elementTokens.Printable; +import model.elementTokens.Updatable; +import model.firefighter.elements.*; import util.Position; import java.lang.reflect.InvocationTargetException; diff --git a/src/main/java/model/CloudBehavior.java b/src/main/java/model/firefighter/behaviors/CloudBehavior.java similarity index 81% rename from src/main/java/model/CloudBehavior.java rename to src/main/java/model/firefighter/behaviors/CloudBehavior.java index 0c8eeabb04a4b1cb4c5f455b4406d6deacc86935..f106cd6cf37c3f33032b03bc5868b284c87f1bfb 100644 --- a/src/main/java/model/CloudBehavior.java +++ b/src/main/java/model/firefighter/behaviors/CloudBehavior.java @@ -1,9 +1,11 @@ -package model; +package model.firefighter.behaviors; import model.BoardData; -import model.FFBehavior; -import model.ModelElement; -import model.RemoverBehavior; +import model.Element; +import model.genericBehavior.RemoverBehavior; +import model.firefighter.FFBehavior; +import model.firefighter.ModelElement; +import model.firefighter.elements.Fire; import util.Position; import java.util.*; @@ -12,7 +14,7 @@ public class CloudBehavior extends FFBehavior implements RemoverBehavior<ModelEl private final Random random=new Random(); @Override - public List<Position> update(BoardData boardData,Element element) { + public List<Position> update(BoardData boardData, Element element) { Position position; position=boardData.getNeighbor(element.getPosition()).get(random.nextInt(boardData.getNeighbor(element.getPosition()).size())); extinguish(boardData,position); diff --git a/src/main/java/model/FireBehavior.java b/src/main/java/model/firefighter/behaviors/FireBehavior.java similarity index 82% rename from src/main/java/model/FireBehavior.java rename to src/main/java/model/firefighter/behaviors/FireBehavior.java index adb1378d356075e8bca3d3385aab64ca8edca861..060c70513f86c8d4fb4a8266aa8df36b65f6503e 100644 --- a/src/main/java/model/FireBehavior.java +++ b/src/main/java/model/firefighter/behaviors/FireBehavior.java @@ -1,5 +1,12 @@ -package model; +package model.firefighter.behaviors; +import model.*; +import model.elementTokens.ChargeTarget; +import model.firefighter.FFBehavior; +import model.firefighter.ModelElement; +import model.firefighter.elements.Fire; +import model.genericBehavior.ChargerBehavior; +import model.genericBehavior.TangibleBehavior; import util.Position; import java.util.ArrayList; @@ -7,12 +14,12 @@ import java.util.List; import java.util.Map; import java.util.Set; -public class FireBehavior extends FFBehavior implements TangibleBehavior<ModelElement>,ChargerBehavior<ModelElement> { +public class FireBehavior extends FFBehavior implements TangibleBehavior<ModelElement>, ChargerBehavior<ModelElement> { private List<ModelElement> obstacles=List.of(ModelElement.MOUNTAIN,ModelElement.ROAD); private List<ModelElement> chargeTargets=List.of(ModelElement.ROCK); @Override - public List<Position> update(BoardData boardData,Element element) { + public List<Position> update(BoardData boardData, Element element) { List<Position> positions=new ArrayList<>(); if (((Fire)element).counter%((Fire)element).delay==0){ positions=legalNeighbors(boardData,element.getPosition()); diff --git a/src/main/java/model/FireFighterBehavior.java b/src/main/java/model/firefighter/behaviors/FireFighterBehavior.java similarity index 84% rename from src/main/java/model/FireFighterBehavior.java rename to src/main/java/model/firefighter/behaviors/FireFighterBehavior.java index 31d9a12deec47c5283532946a7ec95cb75818388..0ce78e7633baf27ff891bed2fdd22f626f5eb004 100644 --- a/src/main/java/model/FireFighterBehavior.java +++ b/src/main/java/model/firefighter/behaviors/FireFighterBehavior.java @@ -1,10 +1,19 @@ -package model; +package model.firefighter.behaviors; +import model.*; +import model.elementTokens.ChargeTarget; +import model.firefighter.FFBehavior; +import model.firefighter.ModelElement; +import model.firefighter.elements.Fire; +import model.firefighter.elements.FireFighter; +import model.genericBehavior.ChargerBehavior; +import model.genericBehavior.RemoverBehavior; +import model.genericBehavior.TangibleBehavior; import util.Position; import util.TargetStrategy; import java.util.*; -public class FireFighterBehavior extends FFBehavior implements TangibleBehavior<ModelElement>,RemoverBehavior<ModelElement>,ChargerBehavior<ModelElement> { +public class FireFighterBehavior extends FFBehavior implements TangibleBehavior<ModelElement>, RemoverBehavior<ModelElement>, ChargerBehavior<ModelElement> { private List<ModelElement> obstacles=List.of(ModelElement.MOUNTAIN); private TargetStrategy ts=new TargetStrategy(); private List chargeTarget=List.of(ModelElement.ROCK); @@ -23,7 +32,7 @@ public class FireFighterBehavior extends FFBehavior implements TangibleBehavior< public List<Position> update(BoardData boardData,Element element) { Position position=element.getPosition(); List<Position> targets=initializeTargets(boardData); - for (int i=0;i<((FireFighter)element).speed;i++) { + for (int i = 0; i<((FireFighter)element).speed; i++) { position=ts.neighborClosestToFire(position,targets,allLegalNeighbors(boardData)); extinguish(boardData,position); targets.remove(position); diff --git a/src/main/java/model/RockBehavior.java b/src/main/java/model/firefighter/behaviors/RockBehavior.java similarity index 74% rename from src/main/java/model/RockBehavior.java rename to src/main/java/model/firefighter/behaviors/RockBehavior.java index bee781329dcb6e425cea70abaa34a5a2ba7562d0..60436bab5729cb88ffd7f317cf14c565381473f0 100644 --- a/src/main/java/model/RockBehavior.java +++ b/src/main/java/model/firefighter/behaviors/RockBehavior.java @@ -1,11 +1,16 @@ -package model; +package model.firefighter.behaviors; +import model.Behavior; +import model.BoardData; +import model.elementTokens.ChargeTarget; +import model.Element; +import model.firefighter.elements.Fire; import util.Position; import java.util.List; import java.util.Map; -public class RockBehavior implements Behavior{ +public class RockBehavior implements Behavior { @Override public List<Position> update(BoardData boardData, Element element) { diff --git a/src/main/java/model/Cloud.java b/src/main/java/model/firefighter/elements/Cloud.java similarity index 78% rename from src/main/java/model/Cloud.java rename to src/main/java/model/firefighter/elements/Cloud.java index 1e8f9bf631a687eabcb32bc2c546bc4c9901d2fc..3c8b0a2e45025093793b02e575079650210e77c2 100644 --- a/src/main/java/model/Cloud.java +++ b/src/main/java/model/firefighter/elements/Cloud.java @@ -1,11 +1,16 @@ -package model; +package model.firefighter.elements; +import model.*; +import model.elementTokens.Printable; +import model.elementTokens.Updatable; +import model.firefighter.behaviors.CloudBehavior; +import model.firefighter.ModelElement; import util.Position; import java.util.ArrayList; import java.util.List; -public class Cloud implements Element,Updatable,Printable{ +public class Cloud implements Element, Updatable, Printable { ModelElement type; Position position; static Behavior behavior=new CloudBehavior(); diff --git a/src/main/java/model/Fire.java b/src/main/java/model/firefighter/elements/Fire.java similarity index 70% rename from src/main/java/model/Fire.java rename to src/main/java/model/firefighter/elements/Fire.java index c83de9d9fd0345fb764dbd7c1d47199cd9da251c..cbd93b8cf0359128c779c80977846b318f7846f9 100644 --- a/src/main/java/model/Fire.java +++ b/src/main/java/model/firefighter/elements/Fire.java @@ -1,15 +1,19 @@ -package model; - +package model.firefighter.elements; + +import model.*; +import model.elementTokens.Printable; +import model.elementTokens.Updatable; +import model.elementTokens.ZoneDependent; +import model.firefighter.behaviors.FireBehavior; +import model.firefighter.factories.FireFactory; +import model.firefighter.ModelElement; import util.Position; -import java.util.HashMap; import java.util.List; -import java.util.Map; -import java.util.stream.Stream; -public abstract class Fire implements Element,Updatable,Printable,ZoneDependent{ - int counter; - int delay; +public abstract class Fire implements Element, Updatable, Printable, ZoneDependent { + public int counter; + public int delay; ModelElement type; Position position; static Behavior behavior=new FireBehavior(); diff --git a/src/main/java/model/FireFighter.java b/src/main/java/model/firefighter/elements/FireFighter.java similarity index 76% rename from src/main/java/model/FireFighter.java rename to src/main/java/model/firefighter/elements/FireFighter.java index c3db79510b5bd5a41c2c71ae9194d23fc93301b6..0b14a224298882123a912c4a8da8867167a324f3 100644 --- a/src/main/java/model/FireFighter.java +++ b/src/main/java/model/firefighter/elements/FireFighter.java @@ -1,12 +1,17 @@ -package model; +package model.firefighter.elements; +import model.*; +import model.elementTokens.Printable; +import model.elementTokens.Updatable; +import model.firefighter.behaviors.FireFighterBehavior; +import model.firefighter.ModelElement; import util.Position; import java.util.ArrayList; import java.util.List; -public abstract class FireFighter implements Element,Updatable,Printable{ - int speed; +public abstract class FireFighter implements Element, Updatable, Printable { + public int speed; ModelElement type; Position position; static Behavior behavior=new FireFighterBehavior(); diff --git a/src/main/java/model/Forest.java b/src/main/java/model/firefighter/elements/Forest.java similarity index 71% rename from src/main/java/model/Forest.java rename to src/main/java/model/firefighter/elements/Forest.java index d2361826daf863bb1795b2310e53c6c5c418b43e..99b5f7f9c8fdf10962cd485c2047aaf2160dfba8 100644 --- a/src/main/java/model/Forest.java +++ b/src/main/java/model/firefighter/elements/Forest.java @@ -1,11 +1,13 @@ -package model; +package model.firefighter.elements; +import model.Element; +import model.firefighter.ModelElement; import util.Position; public class Forest extends Land implements Element { //explanation : while reading the subject, I thought that any FIRE that was ON a ROCK took 4 turns instead of 2 (i changed slowfire into quickfire (1 turn) and did the forest); public Forest(Position position) { super(position); - type=ModelElement.FOREST; + type= ModelElement.FOREST; } } diff --git a/src/main/java/model/Land.java b/src/main/java/model/firefighter/elements/Land.java similarity index 64% rename from src/main/java/model/Land.java rename to src/main/java/model/firefighter/elements/Land.java index 0bc0183fd3937bdee7abce53ea620b0bc595b725..ff0d7a347c765257025f19e905d500c3dd39f3b2 100644 --- a/src/main/java/model/Land.java +++ b/src/main/java/model/firefighter/elements/Land.java @@ -1,8 +1,12 @@ -package model; +package model.firefighter.elements; +import model.Behavior; +import model.Element; +import model.elementTokens.Printable; +import model.firefighter.ModelElement; import util.Position; -public abstract class Land implements Element ,Printable{ +public abstract class Land implements Element, Printable { Position position; ModelElement type; diff --git a/src/main/java/model/MotorizedFireFighter.java b/src/main/java/model/firefighter/elements/MotorizedFireFighter.java similarity index 62% rename from src/main/java/model/MotorizedFireFighter.java rename to src/main/java/model/firefighter/elements/MotorizedFireFighter.java index 828bff5639cada8756c98794233bffc6adf96695..d0fc1fa7672ddb3f173c2d37173607aabd4eba87 100644 --- a/src/main/java/model/MotorizedFireFighter.java +++ b/src/main/java/model/firefighter/elements/MotorizedFireFighter.java @@ -1,8 +1,10 @@ -package model; +package model.firefighter.elements; +import model.elementTokens.Updatable; +import model.firefighter.ModelElement; import util.Position; -public class MotorizedFireFighter extends FireFighter implements Updatable{ +public class MotorizedFireFighter extends FireFighter implements Updatable { public MotorizedFireFighter(Position position) { super(2, ModelElement.MOTORIZEDFIREFIGHTER, position); } diff --git a/src/main/java/model/Mountain.java b/src/main/java/model/firefighter/elements/Mountain.java similarity index 61% rename from src/main/java/model/Mountain.java rename to src/main/java/model/firefighter/elements/Mountain.java index 1c66058c70be1579478b506c33f267ad0b858c51..89db0aa2fe38ba6b9a7bec5ad9a45d063ce7735e 100644 --- a/src/main/java/model/Mountain.java +++ b/src/main/java/model/firefighter/elements/Mountain.java @@ -1,13 +1,12 @@ -package model; +package model.firefighter.elements; import model.Element; +import model.firefighter.ModelElement; import util.Position; -import java.util.List; - public class Mountain extends Land implements Element { public Mountain(Position position) { super(position); - type=ModelElement.MOUNTAIN; + type= ModelElement.MOUNTAIN; } } diff --git a/src/main/java/model/firefighter/elements/QuickFire.java b/src/main/java/model/firefighter/elements/QuickFire.java new file mode 100644 index 0000000000000000000000000000000000000000..6654b2ed9cee3b0bdcca74e4c436a34a0e5887dd --- /dev/null +++ b/src/main/java/model/firefighter/elements/QuickFire.java @@ -0,0 +1,11 @@ +package model.firefighter.elements; + +import model.elementTokens.Updatable; +import model.firefighter.ModelElement; +import util.Position; + +public class QuickFire extends Fire implements Updatable { + public QuickFire(Position position) { + super(1, ModelElement.SLOWFIRE, position); + } +} diff --git a/src/main/java/model/firefighter/elements/Road.java b/src/main/java/model/firefighter/elements/Road.java new file mode 100644 index 0000000000000000000000000000000000000000..df5a5fa31dd3fd7d73c0f2f2c314d1f54123e0d7 --- /dev/null +++ b/src/main/java/model/firefighter/elements/Road.java @@ -0,0 +1,21 @@ +package model.firefighter.elements; + +import model.elementTokens.ConnexElement; +import model.Element; +import model.ElementFactory; +import model.firefighter.ModelElement; +import model.firefighter.factories.RoadFactory; +import util.Position; + +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 factory; + } +} diff --git a/src/main/java/model/Rock.java b/src/main/java/model/firefighter/elements/Rock.java similarity index 75% rename from src/main/java/model/Rock.java rename to src/main/java/model/firefighter/elements/Rock.java index 9e1e80f5aa836ebd185a9b11566e064a5debff1a..35b8a27bd482130360a7ad13e456117e73ed21d4 100644 --- a/src/main/java/model/Rock.java +++ b/src/main/java/model/firefighter/elements/Rock.java @@ -1,10 +1,16 @@ -package model; +package model.firefighter.elements; +import model.*; +import model.elementTokens.ChargeTarget; +import model.elementTokens.Printable; +import model.elementTokens.Updatable; +import model.firefighter.ModelElement; +import model.firefighter.behaviors.RockBehavior; import util.Position; import java.util.List; -public class Rock implements Element,ChargeTarget,Updatable,Printable { +public class Rock implements Element, ChargeTarget, Updatable, Printable { Position position; ModelElement type=ModelElement.ROCK; static Behavior behavior=new RockBehavior(); diff --git a/src/main/java/model/StandardFire.java b/src/main/java/model/firefighter/elements/StandardFire.java similarity index 68% rename from src/main/java/model/StandardFire.java rename to src/main/java/model/firefighter/elements/StandardFire.java index 61a5d159b38dac15ba93bdaddb2856ae85d20286..762ae09bc0c9e2b067cf8773c806bcb7ba23c658 100644 --- a/src/main/java/model/StandardFire.java +++ b/src/main/java/model/firefighter/elements/StandardFire.java @@ -1,5 +1,6 @@ -package model; +package model.firefighter.elements; +import model.firefighter.ModelElement; import util.Position; public class StandardFire extends Fire{ diff --git a/src/main/java/model/StandardFireFighter.java b/src/main/java/model/firefighter/elements/StandardFireFighter.java similarity index 71% rename from src/main/java/model/StandardFireFighter.java rename to src/main/java/model/firefighter/elements/StandardFireFighter.java index bd573e354d53a64393d4cac1e52a97a552d266eb..37be06d76aa50800af40f3305d417a31c365e59b 100644 --- a/src/main/java/model/StandardFireFighter.java +++ b/src/main/java/model/firefighter/elements/StandardFireFighter.java @@ -1,5 +1,6 @@ -package model; +package model.firefighter.elements; +import model.firefighter.ModelElement; import util.Position; public class StandardFireFighter extends FireFighter{ diff --git a/src/main/java/model/FireFactory.java b/src/main/java/model/firefighter/factories/FireFactory.java similarity index 72% rename from src/main/java/model/FireFactory.java rename to src/main/java/model/firefighter/factories/FireFactory.java index 672d44424892d5821ec8fba5d2f61efa299837e9..a190637c6dc618dfeb71a074b64f2cccf527e791 100644 --- a/src/main/java/model/FireFactory.java +++ b/src/main/java/model/firefighter/factories/FireFactory.java @@ -1,12 +1,17 @@ -package model; +package model.firefighter.factories; +import model.BoardData; +import model.Element; +import model.ElementFactory; +import model.firefighter.ModelElement; +import model.firefighter.elements.StandardFire; import util.Position; import java.util.HashMap; import java.util.List; import java.util.Map; -public class FireFactory implements ElementFactory{ +public class FireFactory implements ElementFactory { static Map<ModelElement,ModelElement> fireDictionary=new HashMap<>(); static{ fireDictionary.put(ModelElement.FOREST,ModelElement.SLOWFIRE); diff --git a/src/main/java/model/RoadFactory.java b/src/main/java/model/firefighter/factories/RoadFactory.java similarity index 72% rename from src/main/java/model/RoadFactory.java rename to src/main/java/model/firefighter/factories/RoadFactory.java index 3211861223eb7b2ba7d6b92a9c52e1a13857205a..9e145a2de6f74f9fee6419b9b9e2279825db8077 100644 --- a/src/main/java/model/RoadFactory.java +++ b/src/main/java/model/firefighter/factories/RoadFactory.java @@ -1,21 +1,22 @@ -package model; +package model.firefighter.factories; +import model.BoardData; +import model.Element; +import model.ElementFactory; +import model.firefighter.elements.Road; import util.Position; -import java.util.HashMap; -import java.util.List; -import java.util.Map; import java.util.Random; -public class RoadFactory implements ElementFactory{ +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},{1,1},{1,-1},{-1,1},{-1,-1}}; int[] currentDirection1,currentDirection2; do{ - currentDirection1 = dir[random.nextInt(8)]; - currentDirection2 = dir[random.nextInt(8)]; + currentDirection1 = dir[random.nextInt(4)];//put to 8 to enable diagonals + currentDirection2 = dir[random.nextInt(4)];//put to 8 to enable diagonals }while(currentDirection1==currentDirection2); for (int i = position.row(),j= position.column(); diff --git a/src/main/java/model/ChargerBehavior.java b/src/main/java/model/genericBehavior/ChargerBehavior.java similarity index 65% rename from src/main/java/model/ChargerBehavior.java rename to src/main/java/model/genericBehavior/ChargerBehavior.java index aa26a9bd9dd69e5b264aa089717385360504a085..062362c9ae9e757772d00e93684f855e3dad957d 100644 --- a/src/main/java/model/ChargerBehavior.java +++ b/src/main/java/model/genericBehavior/ChargerBehavior.java @@ -1,6 +1,7 @@ -package model; +package model.genericBehavior; -import util.Position; +import model.Behavior; +import model.elementTokens.ChargeTarget; import java.util.List; diff --git a/src/main/java/model/genericBehavior/RemoverBehavior.java b/src/main/java/model/genericBehavior/RemoverBehavior.java new file mode 100644 index 0000000000000000000000000000000000000000..557853bb804b0a946d6bcd23e8a7e1255d985839 --- /dev/null +++ b/src/main/java/model/genericBehavior/RemoverBehavior.java @@ -0,0 +1,12 @@ +package model.genericBehavior; + +import model.Behavior; +import model.BoardData; +import util.Position; + +import java.util.List; + +public interface RemoverBehavior<E> extends Behavior { + public void extinguish(BoardData boardData, Position position); + +} diff --git a/src/main/java/model/genericBehavior/TangibleBehavior.java b/src/main/java/model/genericBehavior/TangibleBehavior.java new file mode 100644 index 0000000000000000000000000000000000000000..3f859024396b6a99fb81858e33fa9d62877e394c --- /dev/null +++ b/src/main/java/model/genericBehavior/TangibleBehavior.java @@ -0,0 +1,12 @@ +package model.genericBehavior; + +import model.Behavior; +import model.BoardData; +import util.Position; + +import java.util.List; + +public interface TangibleBehavior<E> extends Behavior { + public List<E> getObstacles(); + public Boolean isLegal(BoardData boardData, Position position); +} diff --git a/src/main/java/view/ViewElement.java b/src/main/java/view/ViewElement.java index 102436b6218d61cdea74ae0d3255d40b2a23d065..56c6c1659a6c225bf9f3e5cb0dd069964f4e32cb 100644 --- a/src/main/java/view/ViewElement.java +++ b/src/main/java/view/ViewElement.java @@ -2,6 +2,7 @@ package view; import javafx.scene.paint.Color; import model.*; +import model.firefighter.elements.*; import util.Position; import java.lang.reflect.InvocationTargetException; @@ -14,7 +15,7 @@ public enum ViewElement { FIREFIGHTER(Color.LIGHTBLUE, StandardFireFighter.class), MOTORIZEDFIREFIGHTER(Color.DARKBLUE, MotorizedFireFighter.class), CLOUD(Color.gray(0.8), Cloud.class), - FIRE(Color.RED,Fire.class,Fire.factory), + FIRE(Color.RED, Fire.class,Fire.factory), EMPTY(Color.WHITE, null); final Color color; diff --git a/src/test/java/model/FFBoardTest.java b/src/test/java/model/FFBoardTest.java index ab86f9297ac43dc2c76b22dd81528acd13b47a4a..05f19ec930deb7274702ff0eb3e215bfb2e43ec8 100644 --- a/src/test/java/model/FFBoardTest.java +++ b/src/test/java/model/FFBoardTest.java @@ -1,5 +1,7 @@ package model; +import model.firefighter.FFBoard; +import model.firefighter.ModelElement; import org.junit.jupiter.api.Test; import util.Position;