diff --git a/.gradle/8.10.2/checksums/checksums.lock b/.gradle/8.10.2/checksums/checksums.lock index 4eca5d3a794812e1e6f8dc6e90a74f63fa79c003..019634f8408e4ed8133eded8b44a3af7122071e8 100644 Binary files a/.gradle/8.10.2/checksums/checksums.lock and b/.gradle/8.10.2/checksums/checksums.lock differ diff --git a/.gradle/8.10.2/executionHistory/executionHistory.bin b/.gradle/8.10.2/executionHistory/executionHistory.bin new file mode 100644 index 0000000000000000000000000000000000000000..086beff33bd4053c76b8605fffa17b292500b191 Binary files /dev/null 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 0e18f858e4f9f10cef55cf4d1f628e4323051487..37bf67715ebc63b9d76457cf41ecda787e7d4f46 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 5cdee5afdbd9d5f9eee4eee1b878c47a4a27378f..0c6fa27f591e9ba2b4fcb9dca24021278d30652c 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 da2f32fd095dd74f762be60cc39c1d21fc874150..2904c06868f99b6ad2fc8e5c2a1485fff8f439b9 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 new file mode 100644 index 0000000000000000000000000000000000000000..0ce506ece3e538dc51acf5d91ab9dcf8998a4317 Binary files /dev/null and b/.gradle/8.10.2/fileHashes/resourceHashesCache.bin differ diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 61729ed18e737ad83e00df574edf82524e9931f8..0bfed23eaadfbb45b6a63be501574a861e66fb85 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 new file mode 100644 index 0000000000000000000000000000000000000000..20d9066808c5305806c2504d5b318e01d8be2bd9 Binary files /dev/null and b/.gradle/buildOutputCleanup/outputFiles.bin differ diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe new file mode 100644 index 0000000000000000000000000000000000000000..a14d5937785bd33f267390cd163c0ddd5a9ca8d8 Binary files /dev/null and b/.gradle/file-system.probe differ diff --git a/.gradle/nb-cache/subprojects.ser b/.gradle/nb-cache/subprojects.ser index ac8428d82e8bd32bc9850b99b4a043bf40fe1716..deb16918888c39cfa616d28fc855bbe9a48ff614 100644 Binary files a/.gradle/nb-cache/subprojects.ser and b/.gradle/nb-cache/subprojects.ser differ diff --git a/bin/main/model/Entity.class b/bin/main/model/Entity.class index 27a4fd16e2afd9fd853d73b0e3cfb3464148e2a6..6372b0280b4c7957541ae3ff332d94cc1b324b80 100644 Binary files a/bin/main/model/Entity.class and b/bin/main/model/Entity.class differ diff --git a/bin/main/model/Fire.class b/bin/main/model/Fire.class index 7061a91acb8d803d36de367fc0fb99c167a9ebf7..c2ee41cf242a60ffc96ae714ce19fe7bc4f9b6d1 100644 Binary files a/bin/main/model/Fire.class and b/bin/main/model/Fire.class differ diff --git a/bin/main/model/FireFighter.class b/bin/main/model/FireFighter.class index a05d361c0accfe5374f7e1a4c5f62ef779d3d029..f84bca8485e0acd0f50bab08d8fc12da9567b31a 100644 Binary files a/bin/main/model/FireFighter.class and b/bin/main/model/FireFighter.class differ diff --git a/bin/main/model/FireFighterScenario.class b/bin/main/model/FireFighterScenario.class new file mode 100644 index 0000000000000000000000000000000000000000..07e44f4cca0fd9d2967b7a9c0764a97eaeefde20 Binary files /dev/null and b/bin/main/model/FireFighterScenario.class differ diff --git a/bin/main/model/FirefighterBoard.class b/bin/main/model/FirefighterBoard.class index 56706c1c8393604e1bfd71daa2fce4f711927b3a..e6cc1c9aa30420361fc4aa1416f9e383e9776f54 100644 Binary files a/bin/main/model/FirefighterBoard.class and b/bin/main/model/FirefighterBoard.class differ diff --git a/build/classes/java/main/app/SimulatorApplication.class b/build/classes/java/main/app/SimulatorApplication.class new file mode 100644 index 0000000000000000000000000000000000000000..0945559258306b09c37b530b8c44adfb1b4b4489 Binary files /dev/null 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 new file mode 100644 index 0000000000000000000000000000000000000000..1d13229f73ef27c233a432bc89aa3dffc086246a Binary files /dev/null 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 new file mode 100644 index 0000000000000000000000000000000000000000..02198abdf2c604ece2c32c166bd85717d737a8a8 Binary files /dev/null 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 new file mode 100644 index 0000000000000000000000000000000000000000..314954a9fd4ab6d48da5fec7067063879e670d62 Binary files /dev/null and b/build/classes/java/main/controller/PersistentToggleGroup.class differ diff --git a/build/classes/java/main/model/Board.class b/build/classes/java/main/model/Board.class new file mode 100644 index 0000000000000000000000000000000000000000..a1f8169e45fef3872ae559ad22bdf5a3d6f63dfd Binary files /dev/null and b/build/classes/java/main/model/Board.class differ diff --git a/build/classes/java/main/model/Entity.class b/build/classes/java/main/model/Entity.class new file mode 100644 index 0000000000000000000000000000000000000000..6372b0280b4c7957541ae3ff332d94cc1b324b80 Binary files /dev/null and b/build/classes/java/main/model/Entity.class differ diff --git a/build/classes/java/main/model/Fire.class b/build/classes/java/main/model/Fire.class new file mode 100644 index 0000000000000000000000000000000000000000..826a532f682d0c244081501793b08bb2ff2f02f1 Binary files /dev/null and b/build/classes/java/main/model/Fire.class differ diff --git a/build/classes/java/main/model/FireFighter.class b/build/classes/java/main/model/FireFighter.class new file mode 100644 index 0000000000000000000000000000000000000000..97f8aa030b65a081e086ffc96aada1b3b1959de1 Binary files /dev/null and b/build/classes/java/main/model/FireFighter.class differ diff --git a/build/classes/java/main/model/FireFighterScenario.class b/build/classes/java/main/model/FireFighterScenario.class new file mode 100644 index 0000000000000000000000000000000000000000..6bc6452c28ca1b62fd685748dbce6f3e6e3e707f Binary files /dev/null and b/build/classes/java/main/model/FireFighterScenario.class differ diff --git a/build/classes/java/main/model/FirefighterBoard$1.class b/build/classes/java/main/model/FirefighterBoard$1.class new file mode 100644 index 0000000000000000000000000000000000000000..639299b3e5eb7294f647065a6292f46069ad4ffa Binary files /dev/null and b/build/classes/java/main/model/FirefighterBoard$1.class differ diff --git a/build/classes/java/main/model/FirefighterBoard.class b/build/classes/java/main/model/FirefighterBoard.class new file mode 100644 index 0000000000000000000000000000000000000000..94cf06c18f7e7cbaea5d4aa04e74cdbadc30a8ec Binary files /dev/null and b/build/classes/java/main/model/FirefighterBoard.class differ diff --git a/build/classes/java/main/model/ModelElement.class b/build/classes/java/main/model/ModelElement.class new file mode 100644 index 0000000000000000000000000000000000000000..233ea071f11d658f111ffcfdd0d89e41d52ca544 Binary files /dev/null and b/build/classes/java/main/model/ModelElement.class differ diff --git a/build/classes/java/main/model/TargetStrategy.class b/build/classes/java/main/model/TargetStrategy.class new file mode 100644 index 0000000000000000000000000000000000000000..da7b5d502c5df72549a10bebc64bd97a5fdc5805 Binary files /dev/null and b/build/classes/java/main/model/TargetStrategy.class differ diff --git a/build/classes/java/main/module-info.class b/build/classes/java/main/module-info.class new file mode 100644 index 0000000000000000000000000000000000000000..fead3a3cd5cdfc412b9369229c61310d02348533 Binary files /dev/null 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 new file mode 100644 index 0000000000000000000000000000000000000000..89bcfc46acba6bd77f0f54570c0b935dce0be942 Binary files /dev/null and b/build/classes/java/main/util/Position.class differ diff --git a/build/classes/java/main/view/FirefighterGrid.class b/build/classes/java/main/view/FirefighterGrid.class new file mode 100644 index 0000000000000000000000000000000000000000..831699ca3ca58a17f7b79bad1d1464aeb6d30a4c Binary files /dev/null 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 new file mode 100644 index 0000000000000000000000000000000000000000..c4fa5e96b46909e2a89e512f2ad9c2d4d042260c Binary files /dev/null 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 new file mode 100644 index 0000000000000000000000000000000000000000..0ea0f2a1be043584c460f2e4488911772ffa0f00 Binary files /dev/null and b/build/classes/java/main/view/ViewElement.class differ diff --git a/build/resources/main/view/DarkTheme.css b/build/resources/main/view/DarkTheme.css new file mode 100644 index 0000000000000000000000000000000000000000..46b78aaf90972dd435399466c9fd861ca73fc59f --- /dev/null +++ b/build/resources/main/view/DarkTheme.css @@ -0,0 +1,142 @@ +.background { + -fx-background-color: #1d1d1d; +} + +.label { + -fx-font-size: 11pt; + -fx-font-family: "Segoe UI Semibold"; + -fx-text-fill: white; + -fx-opacity: 0.6; +} + +.label-bright { + -fx-font-size: 11pt; + -fx-font-family: "Segoe UI Semibold"; + -fx-text-fill: white; + -fx-opacity: 1; +} + +.label-header { + -fx-font-size: 32pt; + -fx-font-family: "Segoe UI Light"; + -fx-text-fill: white; + -fx-opacity: 1; +} + +.table-view { + -fx-base: #1d1d1d; + -fx-control-inner-background: #1d1d1d; + -fx-background-color: #1d1d1d; + -fx-table-cell-border-color: transparent; + -fx-table-header-border-color: transparent; + -fx-padding: 5; +} + +.table-view .column-header-background { + -fx-background-color: transparent; +} + +.table-view .column-header, .table-view .filler { + -fx-border-width: 0 0 1 0; + -fx-background-color: transparent; + -fx-border-color: + transparent + transparent + derive(-fx-base, 80%) + transparent; + -fx-border-insets: 0 10 1 0; +} + +.table-view .column-header .label { + -fx-font-size: 20pt; + -fx-font-family: "Segoe UI Light"; + -fx-text-fill: white; + -fx-alignment: center-left; + -fx-opacity: 1; +} + +.table-view:focused .table-row-cell:filled:focused:selected { + -fx-background-color: -fx-focus-color; +} + +.split-pane:horizontal > .split-pane-divider { + -fx-border-color: transparent #1d1d1d transparent #1d1d1d; + -fx-background-color: transparent, derive(#1d1d1d,20%); +} + +.split-pane { + -fx-padding: 1 0 0 0; +} + +.menu-bar { + -fx-background-color: derive(#1d1d1d,20%); +} + +.context-menu { + -fx-background-color: derive(#1d1d1d,50%); +} + +.menu-bar .label { + -fx-font-size: 14pt; + -fx-font-family: "Segoe UI Light"; + -fx-text-fill: white; + -fx-opacity: 0.9; +} + +.menu .left-container { + -fx-background-color: black; +} + +.text-field { + -fx-font-size: 12pt; + -fx-font-family: "Segoe UI Semibold"; +} + +/* + * Metro style Push Button + * Author: Pedro Duque Vieira + * http://pixelduke.wordpress.com/2012/10/23/jmetro-windows-8-controls-on-java/ + */ +.button { + -fx-padding: 5 22 5 22; + -fx-border-color: #e2e2e2; + -fx-border-width: 2; + -fx-background-radius: 0; + -fx-background-color: #1d1d1d; + -fx-font-family: "Segoe UI", Helvetica, Arial, sans-serif; + -fx-font-size: 11pt; + -fx-text-fill: #d8d8d8; + -fx-background-insets: 0 0 0 0, 0, 1, 2; +} + +.button:hover { + -fx-background-color: #3a3a3a; +} + +.button:pressed, .button:default:hover:pressed { + -fx-background-color: white; + -fx-text-fill: #1d1d1d; +} + +.button:focused { + -fx-border-color: white, white; + -fx-border-width: 1, 1; + -fx-border-style: solid; + -fx-border-radius: 0, 0; + -fx-border-insets: 1 1 1 1, 0; +} + +.button:disabled, .button:default:disabled { + -fx-opacity: 0.4; + -fx-background-color: #1d1d1d; + -fx-text-fill: white; +} + +.button:default { + -fx-background-color: -fx-focus-color; + -fx-text-fill: #ffffff; +} + +.button:default:hover { + -fx-background-color: derive(-fx-focus-color,30%); +} \ No newline at end of file diff --git a/build/resources/main/view/view.fxml b/build/resources/main/view/view.fxml new file mode 100644 index 0000000000000000000000000000000000000000..336ffa315645baacbe25bf59171d2ff6d867b9c5 --- /dev/null +++ b/build/resources/main/view/view.fxml @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<?import javafx.scene.control.Button?> +<?import javafx.scene.layout.HBox?> +<?import javafx.scene.layout.VBox?> +<?import view.FirefighterGrid?> + +<?import javafx.scene.control.ToggleButton?> +<?import javafx.scene.control.Separator?> +<?import javafx.scene.control.Label?> +<HBox styleClass="background" stylesheets="@DarkTheme.css" + xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml" + fx:controller="controller.Controller"> + <VBox> + <Separator maxHeight="-Infinity" maxWidth="-Infinity" + prefHeight="24.0" prefWidth="200.0"/> + <Label maxHeight="-Infinity" maxWidth="-Infinity" alignment="CENTER" prefHeight="24.0" prefWidth="200.0" + text="Generation number"/> + <Label fx:id="generationNumberLabel" alignment="CENTER" contentDisplay="TEXT_ONLY" + maxHeight="-Infinity" maxWidth="-Infinity" prefHeight="24.0" prefWidth="200.0"/> + <Separator maxHeight="-Infinity" maxWidth="-Infinity" + prefHeight="24.0" prefWidth="200.0"/> + <Button fx:id="restartButton" maxHeight="-Infinity" maxWidth="-Infinity" + mnemonicParsing="false" onAction="#restartButtonAction" prefHeight="24.0" prefWidth="200.0" + text="Restart"/> + <Button fx:id="oneStepButton" maxHeight="-Infinity" maxWidth="-Infinity" + mnemonicParsing="false" onAction="#oneStepButtonAction" prefHeight="24.0" prefWidth="200.0" + text="One step"/> + <ToggleButton fx:id="playToggleButton" maxHeight="-Infinity" maxWidth="-Infinity" + mnemonicParsing="false" onAction="#playToggleButtonAction" prefHeight="24.0" + prefWidth="200.0" styleClass="button" text="Play"/> + <ToggleButton fx:id="pauseToggleButton" maxHeight="-Infinity" maxWidth="-Infinity" + mnemonicParsing="false" onAction="#pauseToggleButtonAction" prefHeight="24.0" + prefWidth="200.0" styleClass="button" text="Pause"/> + </VBox> + <FirefighterGrid fx:id="grid" + xmlns="http://javafx.com/javafx" + xmlns:fx="http://javafx.com/fxml"> + </FirefighterGrid> +</HBox> diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin new file mode 100644 index 0000000000000000000000000000000000000000..46b73702845b51155ef452d502c381e20b69eb3e Binary files /dev/null and b/build/tmp/compileJava/previous-compilation-data.bin differ diff --git a/build/tmp/jar/MANIFEST.MF b/build/tmp/jar/MANIFEST.MF deleted file mode 100644 index 58630c02ef423cffd6dd6aafd946eb8512040c37..0000000000000000000000000000000000000000 --- a/build/tmp/jar/MANIFEST.MF +++ /dev/null @@ -1,2 +0,0 @@ -Manifest-Version: 1.0 - diff --git a/build/tmp/shadowJar/MANIFEST.MF b/build/tmp/shadowJar/MANIFEST.MF deleted file mode 100644 index 58630c02ef423cffd6dd6aafd946eb8512040c37..0000000000000000000000000000000000000000 --- a/build/tmp/shadowJar/MANIFEST.MF +++ /dev/null @@ -1,2 +0,0 @@ -Manifest-Version: 1.0 - diff --git a/src/main/java/model/Entity.java b/src/main/java/model/Entity.java index ee4162f658df54b8a2c8f03be46a54f54c55bc4d..d6aac01bf59289256e1f99ce99d722bde257d3e1 100644 --- a/src/main/java/model/Entity.java +++ b/src/main/java/model/Entity.java @@ -1,5 +1,5 @@ package model; public interface Entity { - public void nextTurn(); + public void nextTurn(Board board); } diff --git a/src/main/java/model/Fire.java b/src/main/java/model/Fire.java index 7123e78d899ad0037f43a1538e6332fbf066ea43..26de9fcc8d0c1c9e0ea05a85bd230f757b0b8ab9 100644 --- a/src/main/java/model/Fire.java +++ b/src/main/java/model/Fire.java @@ -1,11 +1,15 @@ package model; +import util.Position; public class Fire implements Entity{ + private Position position; + public Fire(Position position){ + this.position = position; + } @Override - public void nextTurn() { - // Récupérer la position - // Ajouter un feu à x + 1 y, x y+1, x+1 y-1, x-1 y+1 + public void nextTurn(Board board) { + // TODO } } diff --git a/src/main/java/model/FireFighter.java b/src/main/java/model/FireFighter.java index e218eff44947f926235bf8aef37d1b1535c6e52f..7dc15897792afab6c0c1ff5cc089adc65b0776fe 100644 --- a/src/main/java/model/FireFighter.java +++ b/src/main/java/model/FireFighter.java @@ -4,9 +4,14 @@ import util.Position; public class FireFighter implements Entity{ private Position position; - public void nextTurn(){ + public FireFighter(Position position){ + this.position = position; + } + public void nextTurn(Board b){ // Récupérer la position //Si un feu est à proximité : éteindre les feux à x + 1 y, x y+1, x+1 y-1, x-1 y+1 + //Sinon + //Se déplacer vers le feu le plus proche //Si un feu est à proximité : éteindre les feux à x + 1 y, x y+1, x+1 y-1, x-1 y+1 // Ajouter un feu à x + 1 y, x y+1, x+1 y-1, x-1 y+1 } diff --git a/src/main/java/model/FireFighterScenario.java b/src/main/java/model/FireFighterScenario.java new file mode 100644 index 0000000000000000000000000000000000000000..fc3c5dded566919af14886653ea675bff0fa2358 --- /dev/null +++ b/src/main/java/model/FireFighterScenario.java @@ -0,0 +1,71 @@ +package model; +import java.util.List; + +import util.*; + +public class FireFighterScenario implements Board<Entity>{ + /** + * Get the state of the board at a specific position. + * + * @param position The position on the board for which to retrieve the state. + * @return The state at the specified position. + */ + public Entity getState(Position position){ + throw new IllegalStateException("Method not implemented"); + } + + /** + * Set the state of a specific position on the board to the specified state. + * + * @param state The state to set for the given position. + * @param position The position on the board for which to set the state. + */ + public void setState(Entity state, Position position){ + throw new IllegalStateException("Method not implemented"); + } + + /** + * Get the number of rows in the board. + * + * @return The number of rows in the board. + */ + public int rowCount(){ + throw new IllegalStateException("Method not implemented"); + } + + /** + * Get the number of columns in the board. + * + * @return The number of columns in the board. + */ + public int columnCount(){ + throw new IllegalStateException("Method not implemented"); + } + + /** + * Update the board to its next generation or state. This method may modify the + * internal state of the board and return a list of positions that have changed + * during the update. + * + * @return A list of positions that have changed during the update. + */ + public List<Position> updateToNextGeneration(){ + throw new IllegalStateException("Method not implemented"); + } + + /** + * Reset the board to its initial state. + */ + public void reset(){ + throw new IllegalStateException("Method not implemented"); + } + + /** + * Get the current step number or generation of the board. + * + * @return The current step number or generation. + */ + public int stepNumber(){ + return 0; + } +} diff --git a/src/main/java/model/FirefighterBoard.java b/src/main/java/model/FirefighterBoard.java index c0bd67cc4f444a33c41551779b11f3d619412bef..a42a3a3dd13cdf7a16525f09087f82d08797452a 100644 --- a/src/main/java/model/FirefighterBoard.java +++ b/src/main/java/model/FirefighterBoard.java @@ -112,9 +112,11 @@ public class FirefighterBoard implements Board<List<ModelElement>> { modifiedPosition.add(newFirefighterPosition); List<Position> neighborFirePositions = neighbors.get(newFirefighterPosition).stream() .filter(firePositions::contains).toList(); - for (Position firePosition : neighborFirePositions) + for (Position firePosition : neighborFirePositions){ + + modifiedPosition.addAll(neighborFirePositions); extinguish(firePosition); - modifiedPosition.addAll(neighborFirePositions); + } } firefighterPositions = firefighterNewPositions; return modifiedPosition;