diff --git a/.gradle/8.4/executionHistory/executionHistory.bin b/.gradle/8.4/executionHistory/executionHistory.bin index 14de053e2be6fbb2ca7891822fcb1d5eb3ead8d2..d9a265d716e9f4309d7c4835cee4acfe1c269eff 100644 Binary files a/.gradle/8.4/executionHistory/executionHistory.bin and b/.gradle/8.4/executionHistory/executionHistory.bin differ diff --git a/.gradle/8.4/executionHistory/executionHistory.lock b/.gradle/8.4/executionHistory/executionHistory.lock index c87fcc9349a2ef81dfe68895e7011b540ebe0730..6cb3367eb4c3d56d4fffd97fc1ec060b4e89b8c5 100644 Binary files a/.gradle/8.4/executionHistory/executionHistory.lock and b/.gradle/8.4/executionHistory/executionHistory.lock differ diff --git a/.gradle/8.4/fileHashes/fileHashes.bin b/.gradle/8.4/fileHashes/fileHashes.bin index ee1911fe5301189769c38cd829c3ffe30c08f0a9..8da2ea643297ea24ebe448d0705eed4fb283bf80 100644 Binary files a/.gradle/8.4/fileHashes/fileHashes.bin and b/.gradle/8.4/fileHashes/fileHashes.bin differ diff --git a/.gradle/8.4/fileHashes/fileHashes.lock b/.gradle/8.4/fileHashes/fileHashes.lock index a6b915a90cb046cfc12791a367d93eeb30bd8cf0..7fac77118eba4edc0e99d909d5e8cd8dcea24a08 100644 Binary files a/.gradle/8.4/fileHashes/fileHashes.lock and b/.gradle/8.4/fileHashes/fileHashes.lock differ diff --git a/.gradle/8.4/fileHashes/resourceHashesCache.bin b/.gradle/8.4/fileHashes/resourceHashesCache.bin index 6cd79388e76bb5f34544f1b41604251d8437dcb1..ab3e0a4676e0148a19681f3824f31fdc9e02de08 100644 Binary files a/.gradle/8.4/fileHashes/resourceHashesCache.bin and b/.gradle/8.4/fileHashes/resourceHashesCache.bin differ diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 7903126a0dcdbfde39041e8a6de5812e36679bf7..9c9ba6e9ea216ef5653e61d1501e8703235f0cef 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 9950dc5e73e58206fe7f141e701e984fedcc0ab0..88df6d9bca121586e9b1df41d8989494bb6915f7 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 2792d63b92517bb76234c95f54d1ac8669770999..1003f5961c795950b88df71148fdc944e51f63e9 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/controller/Controller.class b/build/classes/java/main/controller/Controller.class index 74013efab5e05f9243deca053906751ea238f241..23933b95f3862a8016fa14fae947490553944e61 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/Builder/GameManage.class b/build/classes/java/main/model/Builder/GameManage.class index af3536b151a408b96923e5356e098c9e646509d4..6d31614caa77c363eb0fe85b398c1f6367eabe9c 100644 Binary files a/build/classes/java/main/model/Builder/GameManage.class and b/build/classes/java/main/model/Builder/GameManage.class differ diff --git a/build/classes/java/main/model/ExtinguishFire/Cloud.class b/build/classes/java/main/model/ExtinguishFire/Cloud.class index dd940b0174a4a149abcf9599d409366672fda4e4..61044ec9271ec1cec418aa6f50ce31b14ed7bf66 100644 Binary files a/build/classes/java/main/model/ExtinguishFire/Cloud.class and b/build/classes/java/main/model/ExtinguishFire/Cloud.class differ diff --git a/build/classes/java/main/model/ExtinguishFire/FireFighter.class b/build/classes/java/main/model/ExtinguishFire/FireFighter.class index 02776eb6f209146e6f2de1891a6ecafbc4aa688a..8b3434fcf26e4a650c3fe23173ef74be5ad47abd 100644 Binary files a/build/classes/java/main/model/ExtinguishFire/FireFighter.class and b/build/classes/java/main/model/ExtinguishFire/FireFighter.class differ diff --git a/build/classes/java/main/model/ExtinguishFire/MotorizedFireFighter.class b/build/classes/java/main/model/ExtinguishFire/MotorizedFireFighter.class index 436df44dd36db05fd1c87bf02bf61944fcae213b..2584644314d21ef8df7dc763702d6084d8844c81 100644 Binary files a/build/classes/java/main/model/ExtinguishFire/MotorizedFireFighter.class and b/build/classes/java/main/model/ExtinguishFire/MotorizedFireFighter.class differ diff --git a/build/classes/java/main/model/Flammable/Fire.class b/build/classes/java/main/model/Flammable/Fire.class index c26b25067e3470b44d70d004d5f4c57388352c7a..84d78d98efd0addb56edbf98e7743f38a0792525 100644 Binary files a/build/classes/java/main/model/Flammable/Fire.class and b/build/classes/java/main/model/Flammable/Fire.class differ diff --git a/build/classes/java/main/model/GameBoard.class b/build/classes/java/main/model/GameBoard.class index 9a2ab100b7a3ff1b6282d6ac48938001da2a7bdb..8942affab3e8e68908afa81fa9853f48e4eb1d1f 100644 Binary files a/build/classes/java/main/model/GameBoard.class and b/build/classes/java/main/model/GameBoard.class differ diff --git a/build/classes/java/main/model/Obstacle/Mountain.class b/build/classes/java/main/model/Obstacle/Mountain.class index ab116eed640ff92a1960d9c887bc5a35d19df9b1..187c3cf23bc43eab3f4542f932b95e1291f70154 100644 Binary files a/build/classes/java/main/model/Obstacle/Mountain.class and b/build/classes/java/main/model/Obstacle/Mountain.class differ diff --git a/build/classes/java/main/model/Visitor/FireFighterFinder.class b/build/classes/java/main/model/Visitor/FireFighterFinder.class deleted file mode 100644 index 2a068ef24f0caadfc66eaeb040828cb122de1998..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/Visitor/FireFighterFinder.class and /dev/null differ diff --git a/build/classes/java/main/module-info.class b/build/classes/java/main/module-info.class index 228b8be064ecf35c69bb788937ce7ff8ab50174e..7a769b70875d147512dd0dc3f725d1c113981548 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/view/FirefighterGrid.class b/build/classes/java/main/view/FirefighterGrid.class index d2bbe7e11dd4d28c3fba73284af14ce15b59f73f..22fe36e949c5405790d75ce97f546e9616678c9a 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 cedfc6abc7646d2aeb91d7df5227cbdb1cae0317..5833cd8dcc1d6a5c1f61236997409c2751485e0d 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/tmp/compileJava/compileTransaction/stash-dir/BoardElement.class.uniqueId13 b/build/tmp/compileJava/compileTransaction/stash-dir/BoardElement.class.uniqueId13 deleted file mode 100644 index b7da37d481527392ebf91688895cc27b0ede2413..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/BoardElement.class.uniqueId13 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/BoardElement.class.uniqueId2 b/build/tmp/compileJava/compileTransaction/stash-dir/BoardElement.class.uniqueId2 deleted file mode 100644 index e6407e3436efd6f66cef461a3057ddad781ec1ef..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/BoardElement.class.uniqueId2 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Controller.class.uniqueId6 b/build/tmp/compileJava/compileTransaction/stash-dir/Controller.class.uniqueId6 deleted file mode 100644 index 74013efab5e05f9243deca053906751ea238f241..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/Controller.class.uniqueId6 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Controller.class.uniqueId8 b/build/tmp/compileJava/compileTransaction/stash-dir/Controller.class.uniqueId8 deleted file mode 100644 index 408d092cf56a29ba8a5a3b62eaff45c69e64478e..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/Controller.class.uniqueId8 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/CrossMountain.class.uniqueId5 b/build/tmp/compileJava/compileTransaction/stash-dir/CrossMountain.class.uniqueId5 deleted file mode 100644 index ddbfddb8f7cee6c257ddbd45252852a741b3db40..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/CrossMountain.class.uniqueId5 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/CrossMountain.class.uniqueId9 b/build/tmp/compileJava/compileTransaction/stash-dir/CrossMountain.class.uniqueId9 deleted file mode 100644 index 69f63f7cd3d38ef2cee410a9416eee60dd7cfd4f..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/CrossMountain.class.uniqueId9 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/CrossRoad.class.uniqueId1 b/build/tmp/compileJava/compileTransaction/stash-dir/CrossRoad.class.uniqueId1 deleted file mode 100644 index ee0df02352663a36d691bb3081a31d94c5028c0d..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/CrossRoad.class.uniqueId1 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/CrossRoad.class.uniqueId2 b/build/tmp/compileJava/compileTransaction/stash-dir/CrossRoad.class.uniqueId2 deleted file mode 100644 index 6846553e8ac3d3e4fee6d99e85266f45c4b7a798..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/CrossRoad.class.uniqueId2 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/EmptyElement.class.uniqueId3 b/build/tmp/compileJava/compileTransaction/stash-dir/EmptyElement.class.uniqueId3 deleted file mode 100644 index 1b4302dfb07e50dd922bb3bfc0397dd9181191c2..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/EmptyElement.class.uniqueId3 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/EmptyElement.class.uniqueId8 b/build/tmp/compileJava/compileTransaction/stash-dir/EmptyElement.class.uniqueId8 deleted file mode 100644 index 5069ea14ef0a85701717a0b7537a043f6dcdd4af..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/EmptyElement.class.uniqueId8 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/ExtinguishFire.class.uniqueId0 b/build/tmp/compileJava/compileTransaction/stash-dir/ExtinguishFire.class.uniqueId0 deleted file mode 100644 index a4d622e74ad0dac8a1e1ee24f055fadd19df68df..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/ExtinguishFire.class.uniqueId0 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Fire.class.uniqueId6 b/build/tmp/compileJava/compileTransaction/stash-dir/Fire.class.uniqueId6 deleted file mode 100644 index 54c22d9aa466d3b1562090fce45b0f280f3518b3..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/Fire.class.uniqueId6 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Fire.class.uniqueId7 b/build/tmp/compileJava/compileTransaction/stash-dir/Fire.class.uniqueId7 deleted file mode 100644 index c26b25067e3470b44d70d004d5f4c57388352c7a..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/Fire.class.uniqueId7 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/FireFighter.class.uniqueId12 b/build/tmp/compileJava/compileTransaction/stash-dir/FireFighter.class.uniqueId12 deleted file mode 100644 index 02776eb6f209146e6f2de1891a6ecafbc4aa688a..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/FireFighter.class.uniqueId12 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/FireFighter.class.uniqueId15 b/build/tmp/compileJava/compileTransaction/stash-dir/FireFighter.class.uniqueId15 deleted file mode 100644 index ef5f30ff2197eb4fae3cd0571d46d41d2ace1ba5..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/FireFighter.class.uniqueId15 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/FireFighterFinder.class.uniqueId4 b/build/tmp/compileJava/compileTransaction/stash-dir/FireFighterFinder.class.uniqueId4 deleted file mode 100644 index 2a068ef24f0caadfc66eaeb040828cb122de1998..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/FireFighterFinder.class.uniqueId4 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/FireFinder.class.uniqueId10 b/build/tmp/compileJava/compileTransaction/stash-dir/FireFinder.class.uniqueId10 deleted file mode 100644 index 3eee0b6a9e0b6ef841b3a41e019f5871a34211a8..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/FireFinder.class.uniqueId10 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/FireFinder.class.uniqueId16 b/build/tmp/compileJava/compileTransaction/stash-dir/FireFinder.class.uniqueId16 deleted file mode 100644 index 05ddcb141f461b8f1e4f42cb7b2c32083b234b7f..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/FireFinder.class.uniqueId16 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/FirefighterGrid.class.uniqueId3 b/build/tmp/compileJava/compileTransaction/stash-dir/FirefighterGrid.class.uniqueId3 deleted file mode 100644 index d2bbe7e11dd4d28c3fba73284af14ce15b59f73f..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/FirefighterGrid.class.uniqueId3 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/FirefighterGrid.class.uniqueId9 b/build/tmp/compileJava/compileTransaction/stash-dir/FirefighterGrid.class.uniqueId9 deleted file mode 100644 index d2bbe7e11dd4d28c3fba73284af14ce15b59f73f..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/FirefighterGrid.class.uniqueId9 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Flammable.class.uniqueId1 b/build/tmp/compileJava/compileTransaction/stash-dir/Flammable.class.uniqueId1 deleted file mode 100644 index bf120cd5de3e083cfef4bb7079bfbbbd2f05fb97..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/Flammable.class.uniqueId1 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Flammable.class.uniqueId12 b/build/tmp/compileJava/compileTransaction/stash-dir/Flammable.class.uniqueId12 deleted file mode 100644 index fe96542831296a4c3aaf59973ade237c17d4a0a6..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/Flammable.class.uniqueId12 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/GameBoard.class.uniqueId11 b/build/tmp/compileJava/compileTransaction/stash-dir/GameBoard.class.uniqueId11 deleted file mode 100644 index 0c04059815ab8a9ea3f38fb9b1752e87dac6fb40..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/GameBoard.class.uniqueId11 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/GameManage.class.uniqueId4 b/build/tmp/compileJava/compileTransaction/stash-dir/GameManage.class.uniqueId4 deleted file mode 100644 index af3536b151a408b96923e5356e098c9e646509d4..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/GameManage.class.uniqueId4 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Grid.class.uniqueId13 b/build/tmp/compileJava/compileTransaction/stash-dir/Grid.class.uniqueId13 deleted file mode 100644 index cedfc6abc7646d2aeb91d7df5227cbdb1cae0317..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/Grid.class.uniqueId13 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Grid.class.uniqueId5 b/build/tmp/compileJava/compileTransaction/stash-dir/Grid.class.uniqueId5 deleted file mode 100644 index cedfc6abc7646d2aeb91d7df5227cbdb1cae0317..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/Grid.class.uniqueId5 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Obstacles.class.uniqueId7 b/build/tmp/compileJava/compileTransaction/stash-dir/Obstacles.class.uniqueId7 deleted file mode 100644 index fff48ef4e9967a51eeca54cadce22b98a897ae4c..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/Obstacles.class.uniqueId7 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Visitor.class.uniqueId11 b/build/tmp/compileJava/compileTransaction/stash-dir/Visitor.class.uniqueId11 deleted file mode 100644 index 6bda2c96ed0d078985d77b993144828ec7de1b9c..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/Visitor.class.uniqueId11 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Visitor.class.uniqueId14 b/build/tmp/compileJava/compileTransaction/stash-dir/Visitor.class.uniqueId14 deleted file mode 100644 index d9ae8e3a8a6375c074840b3b24e35ce02a6d6b1e..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/Visitor.class.uniqueId14 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/module-info.class.uniqueId10 b/build/tmp/compileJava/compileTransaction/stash-dir/module-info.class.uniqueId10 deleted file mode 100644 index 7a769b70875d147512dd0dc3f725d1c113981548..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/module-info.class.uniqueId10 and /dev/null differ diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin index 4bd233e0eadb98e8fa5873e7b16630662e933ad2..b581eed029bcd9d3ac0e02103362957d29c9dab3 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/app/SimulatorApplication.java b/src/main/java/app/SimulatorApplication.java index 351abfe45780ac3aa3dab486bd37909748981d6f..241535ad21caa88d9dc9f06805b63b0593d3a18b 100644 --- a/src/main/java/app/SimulatorApplication.java +++ b/src/main/java/app/SimulatorApplication.java @@ -19,8 +19,10 @@ public class SimulatorApplication extends javafx.application.Application { private static final int SQUARE_HEIGHT = 30; public static final int INITIAL_FIRE_COUNT = 5; public static final int INITIAL_FIREFIGHTER_COUNT = 3; - public static final int INITIAL_CLOUD_COUNT = 2; + public static final int INITIAL_CLOUD_COUNT = 15; public static final int INITIAL_MOTORIZEDFIREFIGHTER_COUNT = 2; + public static final int INITIAL_MOUNTAIN_COUNT = 15; + private Stage primaryStage; private Parent view; private void initializePrimaryStage(Stage primaryStage) { @@ -45,7 +47,7 @@ public class SimulatorApplication extends javafx.application.Application { view = loader.load(); Controller controller = loader.getController(); controller.initialize(SQUARE_WIDTH, SQUARE_HEIGHT, COLUMN_COUNT, ROW_COUNT, - INITIAL_FIRE_COUNT, INITIAL_FIREFIGHTER_COUNT, INITIAL_CLOUD_COUNT,INITIAL_MOTORIZEDFIREFIGHTER_COUNT); + INITIAL_FIRE_COUNT, INITIAL_FIREFIGHTER_COUNT, INITIAL_CLOUD_COUNT,INITIAL_MOTORIZEDFIREFIGHTER_COUNT,INITIAL_MOUNTAIN_COUNT); } private void showScene() { diff --git a/src/main/java/controller/Controller.java b/src/main/java/controller/Controller.java index 8719a0a6feb61e6e9acae11ce37ac5310eddc159..b5f3cde65a57cbee5305ac5b521a9d103828d9a3 100644 --- a/src/main/java/controller/Controller.java +++ b/src/main/java/controller/Controller.java @@ -17,6 +17,7 @@ import util.Position; import view.Grid; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import static java.util.Objects.requireNonNull; @@ -63,16 +64,18 @@ public class Controller { private void repaintGrid(){ int columnCount = board.columnCount(); int rowCount = board.rowCount(); - model.BoardElement[][] boardElements = new model.BoardElement[rowCount][columnCount]; + HashMap<Position, ArrayList<BoardElement>> elementPositionGrid = new HashMap<>(); for(int column = 0; column < columnCount; column++) for(int row = 0; row < rowCount; row++){ if(board.getElementPosition().containsKey(new Position(row,column)) && board.getElementPosition().get(new Position(row,column)).size()!=0){ - boardElements[row][column] = board.getElementPosition().get(new Position(row,column)).get(0); + elementPositionGrid.put(new Position(row,column),board.getElementPosition().get(new Position(row,column))); }else{ - boardElements[row][column]=new EmptyElement(); + ArrayList<BoardElement> x=new ArrayList<>(); + x.add(new EmptyElement()); + elementPositionGrid.put(new Position(row,column),x); } } - grid.repaint(boardElements); + grid.repaint(elementPositionGrid); updateGenerationLabel(board.stepNumber()); } @@ -109,9 +112,9 @@ public class Controller { } public void initialize(int squareWidth, int squareHeight, int columnCount, - int rowCount, int initialFireCount, int initialFirefighterCount,int initialCloudCount,int initialMotorizedFireFighterCount) { + int rowCount, int initialFireCount, int initialFirefighterCount,int initialCloudCount,int initialMotorizedFireFighterCount,int initialMountainCount) { grid.setDimensions(columnCount, rowCount, squareWidth, squareHeight); - board = new GameBoard(rowCount,columnCount,initialFireCount,initialFirefighterCount,initialCloudCount,initialMotorizedFireFighterCount); + board = new GameBoard(rowCount,columnCount,initialFireCount,initialFirefighterCount,initialCloudCount,initialMotorizedFireFighterCount,initialMountainCount); board.initializeElements(); repaintGrid(); } diff --git a/src/main/java/model/BoardElement.java b/src/main/java/model/BoardElement.java index 4100f828a2f9ee1ee61bcfa5ac84e75df95168a9..7f50f975a82d7fc38520adf8ebbc8df67f8d495b 100644 --- a/src/main/java/model/BoardElement.java +++ b/src/main/java/model/BoardElement.java @@ -14,4 +14,6 @@ public interface BoardElement { Color getColor(); Boolean accept(Visitor visitor); void initialize(); + void update(GameBoard gameBoard , Position position, HashMap<Position, ArrayList<BoardElement>> newElementPosition, ArrayList<Position> extinguishPosition); + } diff --git a/src/main/java/model/Builder/FireFirefightersBuilder.java b/src/main/java/model/Builder/FireFirefightersBuilder.java index 81761717ce8a6893a77b43fe360a863d6aa6b095..53d18f891302d3885f5d5f803128802596cc1d87 100644 --- a/src/main/java/model/Builder/FireFirefightersBuilder.java +++ b/src/main/java/model/Builder/FireFirefightersBuilder.java @@ -1,13 +1,14 @@ package model.Builder; public class FireFirefightersBuilder { - public void Build(int fires, int firefighters , int clouds , int motorizedFireFighter) { + public void Build(int fires, int firefighters , int clouds , int motorizedFireFighters ,int mountains) { ConcreteGameBuilder concreteGameBuilder; concreteGameBuilder =new ConcreteGameBuilder(); concreteGameBuilder.setFire(fires) .setFireFighter(firefighters) .setCloud(clouds) - .setMotorizedFireFighter(motorizedFireFighter) + .setMotorizedFireFighter(motorizedFireFighters) + .setMountain(mountains) .build(); } } diff --git a/src/main/java/model/Builder/GameManage.java b/src/main/java/model/Builder/GameManage.java index 151135d213a60453e8c15cf0bbe1503da179fe65..c75cc378b936c389d960fbaf89759abc0eab0acd 100644 --- a/src/main/java/model/Builder/GameManage.java +++ b/src/main/java/model/Builder/GameManage.java @@ -5,6 +5,7 @@ import model.ExtinguishFire.Cloud; import model.ExtinguishFire.FireFighter; import model.ExtinguishFire.MotorizedFireFighter; import model.Flammable.Fire; +import model.Obstacle.Mountain; public class GameManage { private final int fires; @@ -34,11 +35,14 @@ public class GameManage { new FireFighter(Color.BLUE); } for(int i=0;i<clouds;i++) { - new Cloud(Color.DARKBLUE); + new Cloud(Color.GRAY); } for(int i=0;i<motorizedFireFighters;i++) { new MotorizedFireFighter(Color.ORANGE); } + for(int i=0;i<mountains;i++) { + new Mountain(Color.BROWN); + } // TODO: 15/11/2023 la suite .... aussi l'initialisation va changer dans fire et firefighter } diff --git a/src/main/java/model/EmptyElement.java b/src/main/java/model/EmptyElement.java index 0834ed20164d8952c31219db4eef249683d40d72..ca676943d2f996ca331ecf9166c6175b03e03486 100644 --- a/src/main/java/model/EmptyElement.java +++ b/src/main/java/model/EmptyElement.java @@ -22,4 +22,9 @@ public class EmptyElement implements BoardElement{ public void initialize() { } + + @Override + public void update(GameBoard gameBoard, Position position, HashMap<Position, ArrayList<BoardElement>> newElementPosition, ArrayList<Position> extinguishPosition) { + + } } diff --git a/src/main/java/model/ExtinguishFire/Cloud.java b/src/main/java/model/ExtinguishFire/Cloud.java index f4db6c7e384e6567f90372334b415a010b09988e..e8b51c01e50407431af7fb04fca81ad882587370 100644 --- a/src/main/java/model/ExtinguishFire/Cloud.java +++ b/src/main/java/model/ExtinguishFire/Cloud.java @@ -14,7 +14,7 @@ import static model.GameBoard.randomPosition; public class Cloud implements ExtinguishFire{ - Color color; + private final Color color; public Cloud(Color color){ this.color=color; diff --git a/src/main/java/model/ExtinguishFire/ExtinguishFire.java b/src/main/java/model/ExtinguishFire/ExtinguishFire.java index 006a184b8dafa69d1dd97417c753609aa993d12c..c65c649b5c27c7a080feb45d9ea25e7f98962907 100644 --- a/src/main/java/model/ExtinguishFire/ExtinguishFire.java +++ b/src/main/java/model/ExtinguishFire/ExtinguishFire.java @@ -9,6 +9,6 @@ import java.util.HashMap; public interface ExtinguishFire extends BoardElement { - void update(GameBoard gameBoard , Position position, HashMap<Position, ArrayList<BoardElement>> newElementPosition, ArrayList<Position> extinguishPosition); + //void update(GameBoard gameBoard , Position position, HashMap<Position, ArrayList<BoardElement>> newElementPosition, ArrayList<Position> extinguishPosition); } diff --git a/src/main/java/model/ExtinguishFire/FireFighter.java b/src/main/java/model/ExtinguishFire/FireFighter.java index 73e882fcd02475c97582e1ae6cffa1d7e8098679..4dd87bd179b5581f20a4c5f37f83aec4dfd8b30b 100644 --- a/src/main/java/model/ExtinguishFire/FireFighter.java +++ b/src/main/java/model/ExtinguishFire/FireFighter.java @@ -8,19 +8,18 @@ import model.Visitor.FireFinder; import model.Visitor.Visitor; import util.Position; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static model.GameBoard.elementPosition; public class FireFighter implements ExtinguishFire { - Color color; - public FireFighter(Color color){ - this.color=color; + private final Color color; + + public FireFighter(Color color) { + this.color = color; initialize(); } + @Override public Color getColor() { return color; @@ -32,12 +31,12 @@ public class FireFighter implements ExtinguishFire { } @Override - public void initialize( ) { - CrossMountain crossMountain=new CrossMountain(); + public void initialize() { + CrossMountain crossMountain = new CrossMountain(); boolean canInitialise; Position position = GameBoard.randomPosition(); - if(elementPosition.containsKey(position)) { - for (;;) { + if (elementPosition.containsKey(position)) { + for (; ; ) { canInitialise = true; for (BoardElement element : elementPosition.get(position)) { if (element.accept(crossMountain)) { @@ -62,37 +61,102 @@ public class FireFighter implements ExtinguishFire { } ArrayList<BoardElement> boardElements = new ArrayList<>(); boardElements.add(this); - elementPosition.put(position,boardElements); + elementPosition.put(position, boardElements); } @Override public void update(GameBoard gameBoard, Position position, HashMap<Position, ArrayList<BoardElement>> newElementPosition, ArrayList<Position> extinguishPosition) { - List<Position> firePositions = new ArrayList<>(); - for (Map.Entry<Position, ArrayList<BoardElement>> entry : elementPosition.entrySet()) { - for (BoardElement element : entry.getValue()) { - if (element.accept(new FireFinder())) { - firePositions.add(entry.getKey()); - } + List<Position> firePositions = new ArrayList<>(); + for (Map.Entry<Position, ArrayList<BoardElement>> entry : elementPosition.entrySet()) { + for (BoardElement element : entry.getValue()) { + if (element.accept(new FireFinder())) { + firePositions.add(entry.getKey()); } } - Position newFirefighterPosition = gameBoard.neighborClosestToFire(position); - if(newElementPosition.containsKey(newFirefighterPosition)){ - newElementPosition.get(newFirefighterPosition).add(this); - } - else{ - ArrayList<BoardElement> boardElements = new ArrayList<>(); - boardElements.add(this); - newElementPosition.put(newFirefighterPosition,boardElements); + } + Position newFirefighterPosition = gameBoard.neighborClosestToFire(position); + if (elementPosition.containsKey(newFirefighterPosition)) { + boolean canMove = true; + for (BoardElement boardElement : elementPosition.get(newFirefighterPosition)) { + if (boardElement.accept(new CrossMountain())) { + canMove = false; + break; + } } - extinguishPosition.add(newFirefighterPosition); - List<Position> neighborFirePositions = gameBoard.neighbors(newFirefighterPosition).stream() - .filter(firePositions::contains).toList(); - for(Position firePosition : neighborFirePositions) { - extinguishPosition.add(firePosition); + if (canMove) { + if (newElementPosition.containsKey(newFirefighterPosition)) { + newElementPosition.get(newFirefighterPosition).add(this); + } else { + ArrayList<BoardElement> boardElements = new ArrayList<>(); + boardElements.add(this); + newElementPosition.put(newFirefighterPosition, boardElements); + } + extinguishPosition.add(newFirefighterPosition); + List<Position> neighborFirePositions = gameBoard.neighbors(newFirefighterPosition).stream() + .filter(firePositions::contains).toList(); + for (Position firePosition : neighborFirePositions) { + extinguishPosition.add(firePosition); + } + + } else { + List<Position> neighbors = gameBoard.neighbors(position); + for (Position position1 : neighbors) { + canMove = true; + if (!elementPosition.containsKey(position1)){ + ArrayList<BoardElement> boardElements = new ArrayList<>(); + boardElements.add(this); + newElementPosition.put(position, boardElements); + extinguishPosition.add(position1); + List<Position> neighborFirePositions = gameBoard.neighbors(position1).stream() + .filter(firePositions::contains).toList(); + for (Position firePosition : neighborFirePositions) { + extinguishPosition.add(firePosition); + } + break; + } + for (BoardElement boardElement : elementPosition.get(position1)) { + if (boardElement.accept(new CrossMountain())) { + canMove = false; + break; + } + } + if (canMove) { + newFirefighterPosition = position1; + if (newElementPosition.containsKey(newFirefighterPosition)) { + newElementPosition.get(newFirefighterPosition).add(this); + } else { + ArrayList<BoardElement> boardElements = new ArrayList<>(); + boardElements.add(this); + newElementPosition.put(newFirefighterPosition, boardElements); + } + extinguishPosition.add(newFirefighterPosition); + List<Position> neighborFirePositions = gameBoard.neighbors(newFirefighterPosition).stream() + .filter(firePositions::contains).toList(); + for (Position firePosition : neighborFirePositions) { + extinguishPosition.add(firePosition); + } + break; + } + } + if (!canMove) { + if (newElementPosition.containsKey(position)) { + newElementPosition.get(position).add(this); + } else { + ArrayList<BoardElement> boardElements = new ArrayList<>(); + boardElements.add(this); + newElementPosition.put(position, boardElements); + } + } + } } - + else{ + ArrayList<BoardElement> boardElements = new ArrayList<>(); + boardElements.add(this); + newElementPosition.put(position, boardElements); + } + } } diff --git a/src/main/java/model/ExtinguishFire/MotorizedFireFighter.java b/src/main/java/model/ExtinguishFire/MotorizedFireFighter.java index 5d04606784c5f64e617b39e350fe85e3019c47ee..60b855dcfc447652a1083cf3156be0f3dc489017 100644 --- a/src/main/java/model/ExtinguishFire/MotorizedFireFighter.java +++ b/src/main/java/model/ExtinguishFire/MotorizedFireFighter.java @@ -17,7 +17,7 @@ import static model.GameBoard.elementPosition; public class MotorizedFireFighter implements ExtinguishFire { - Color color; + private final Color color; public MotorizedFireFighter(Color color){ this.color=color; diff --git a/src/main/java/model/Flammable/Fire.java b/src/main/java/model/Flammable/Fire.java index 1d156d3ea1f521735df67fdaa6e27dd653205060..f294189b06c67ba2141102b19776ff236ef02ea7 100644 --- a/src/main/java/model/Flammable/Fire.java +++ b/src/main/java/model/Flammable/Fire.java @@ -33,13 +33,14 @@ public class Fire implements Flammable{ @Override public void initialize() { FireFinder fireFinder=new FireFinder(); + CrossMountain crossMountain = new CrossMountain(); Position position = GameBoard.randomPosition(); boolean canInitialise; if(GameBoard.elementPosition.containsKey(position)) { for (;;) { canInitialise=true; for (BoardElement element : GameBoard.elementPosition.get(position)) { - if (element.accept(fireFinder)) { + if (element.accept(fireFinder) || element.accept(crossMountain)) { canInitialise=false; break; } @@ -63,7 +64,7 @@ public class Fire implements Flammable{ GameBoard.elementPosition.put(position,boardElements); } - @Override // TODO: 15/11/2023 + @Override public void update(GameBoard gameBoard , Position position,HashMap<Position, ArrayList<BoardElement>> newElementPosition, ArrayList<Position> extinguishPosition) { if(extinguishPosition.contains(position)){ return ; @@ -82,7 +83,7 @@ public class Fire implements Flammable{ continue; if(GameBoard.elementPosition.containsKey(newPosition)) { for(BoardElement boardElement : GameBoard.elementPosition.get(newPosition)){ - if(boardElement.accept(new FireFinder()) && boardElement.accept(new CrossRoad()) && boardElement.accept(new CrossMountain())){ + if(boardElement.accept(new FireFinder()) || boardElement.accept(new CrossRoad()) || boardElement.accept(new CrossMountain())){ break; } else if(!boardElement.accept( new FireFinder())&& !boardElement.accept(new CrossRoad()) && !boardElement.accept(new CrossMountain())){ @@ -95,7 +96,6 @@ public class Fire implements Flammable{ ArrayList<BoardElement> boardElements = new ArrayList<>(); boardElements.add(this); newElementPosition.put(newPosition,boardElements); - //System.out.println(GameBoard.elementPosition.get(position).get(0).getColor()); } } diff --git a/src/main/java/model/Flammable/Flammable.java b/src/main/java/model/Flammable/Flammable.java index 325c6d3012ce69d730224122c935bfd377258c7a..72fb4d693d7e7d1467e839ace1227d2418f67662 100644 --- a/src/main/java/model/Flammable/Flammable.java +++ b/src/main/java/model/Flammable/Flammable.java @@ -10,5 +10,5 @@ import java.util.List; public interface Flammable extends BoardElement{ - void update(GameBoard gameBoard, Position position,HashMap<Position, ArrayList<BoardElement>> newElementPosition, ArrayList<Position> extinguishPosition); + //void update(GameBoard gameBoard, Position position,HashMap<Position, ArrayList<BoardElement>> newElementPosition, ArrayList<Position> extinguishPosition); } diff --git a/src/main/java/model/GameBoard.java b/src/main/java/model/GameBoard.java index 1cb840f0c4a2bb1e938be7fda3b87821d4d1b5b6..9a4d9e145edfb5ec6e29e9e946ad5844df11fca2 100644 --- a/src/main/java/model/GameBoard.java +++ b/src/main/java/model/GameBoard.java @@ -16,6 +16,8 @@ public class GameBoard implements Board{ private int initialFirefighterCount; private int initialCloudCount; private int initialMotorizedFireFighterCount; + private int initialMountainCount; + private int step = 0; static Random randomGenerator = new Random(); @@ -25,18 +27,19 @@ public class GameBoard implements Board{ public static HashMap<Position, ArrayList<BoardElement>> elementPosition=new HashMap<>(); - public GameBoard(int columnCount,int rowCount,int initialFireCount, int initialFirefighterCount,int initialCloudCount,int initialMotorizedFireFighterCount) { + public GameBoard(int columnCount,int rowCount,int initialFireCount, int initialFirefighterCount,int initialCloudCount,int initialMotorizedFireFighterCount,int initialMountainCount) { this.columnCount = columnCount; this.rowCount = rowCount; this.initialFireCount = initialFireCount; this.initialFirefighterCount = initialFirefighterCount; this.initialCloudCount = initialCloudCount; this.initialMotorizedFireFighterCount=initialMotorizedFireFighterCount; + this.initialMountainCount = initialMountainCount; } public void initializeElements(){ FireFirefightersBuilder fireFirefighterBuilder=new FireFirefightersBuilder(); - fireFirefighterBuilder.Build(this.initialFireCount,this.initialFirefighterCount,this.initialCloudCount,this.initialMotorizedFireFighterCount); + fireFirefighterBuilder.Build(this.initialFireCount,this.initialFirefighterCount,this.initialCloudCount,this.initialMotorizedFireFighterCount,this.initialMountainCount); } public static Position randomPosition() { @@ -50,8 +53,8 @@ public class GameBoard implements Board{ for(BoardElement element : entry.getValue()){ if (!element.accept(new FireFinder())){ - ExtinguishFire element1 = (ExtinguishFire) element; - element1.update(this,entry.getKey(),newElementPosition,extinguishPosition); + + element.update(this,entry.getKey(),newElementPosition,extinguishPosition); } } } diff --git a/src/main/java/model/Obstacle/Mountain.java b/src/main/java/model/Obstacle/Mountain.java index 36642561fef73104618563ff81e54732a4ef2f6a..d53d4cef0837361c4797699622fdbe9ab5fe1fbc 100644 --- a/src/main/java/model/Obstacle/Mountain.java +++ b/src/main/java/model/Obstacle/Mountain.java @@ -1,4 +1,56 @@ package model.Obstacle; -public class Mountain { +import javafx.scene.paint.Color; +import model.BoardElement; +import model.GameBoard; +import model.Visitor.FireFinder; +import model.Visitor.Visitor; +import util.Position; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +import static model.GameBoard.elementPosition; + +public class Mountain implements Obstacles{ + + private final Color color; + + public Mountain(Color color){ + this.color=color; + initialize(); + } + @Override + public Color getColor() { + return color; + } + + @Override + public Boolean accept(Visitor visitor) { + return visitor.visit(this); + } + + @Override + public void initialize() { + Position position = GameBoard.randomPosition(); + if (elementPosition.containsKey(position)) + elementPosition.get(position).add(this); + else { + ArrayList<BoardElement> boardElements = new ArrayList<>(); + boardElements.add(this); + elementPosition.put(position, boardElements); + } + } + + @Override + public void update(GameBoard gameBoard, Position position, HashMap<Position, ArrayList<BoardElement>> newElementPosition, ArrayList<Position> extinguishPosition) { + if(newElementPosition.containsKey(position)) + newElementPosition.get(position).add(this); + else{ + ArrayList<BoardElement> boardElements = new ArrayList<>(); + boardElements.add(this); + newElementPosition.put(position,boardElements); + } + } } diff --git a/src/main/java/model/Obstacle/Obstacles.java b/src/main/java/model/Obstacle/Obstacles.java index c1cc3cd94179786e60ab4183e34b820fd37bc23c..c913b4a72f4c407f06db71a4f1c70f5b9aa0bdf9 100644 --- a/src/main/java/model/Obstacle/Obstacles.java +++ b/src/main/java/model/Obstacle/Obstacles.java @@ -1,11 +1,15 @@ package model.Obstacle; import model.BoardElement; +import model.GameBoard; import util.Position; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; public interface Obstacles extends BoardElement { + //void update(GameBoard gameBoard, Position position, HashMap<Position, ArrayList<BoardElement>> newElementPosition, ArrayList<Position> extinguishPosition); } diff --git a/src/main/java/view/FirefighterGrid.java b/src/main/java/view/FirefighterGrid.java index 042dc7b54ac7b2d11202a6d3b53727bf1c450baf..1091bebfb81bf8990409ab5439f96d844af7440d 100644 --- a/src/main/java/view/FirefighterGrid.java +++ b/src/main/java/view/FirefighterGrid.java @@ -6,42 +6,52 @@ import javafx.util.Pair; import model.BoardElement; import util.Position; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; public class FirefighterGrid extends Canvas implements Grid<model.BoardElement>{ - private void paintElementAtPosition(model.BoardElement element, Position position) { - paintSquare(position.row(), position.column(), element.getColor()); + + private void paintElementAtPosition(ArrayList<BoardElement> elementsAtPosition, Position position) { + paintSquare(position.row(), position.column(), elementsAtPosition); } + + private void paintSquare(int row, int column, ArrayList<BoardElement> elementsAtPosition) { + double squareWidthDivide = squareWidth / elementsAtPosition.size(); + double lineWidth = 2; + + for (int i = 0; i < elementsAtPosition.size(); i++) { + BoardElement element = elementsAtPosition.get(i); + + + getGraphicsContext2D().setFill(element.getColor()); + getGraphicsContext2D().fillRect(row * squareHeight, (column * squareWidth) + (i * squareWidthDivide), squareHeight, squareWidthDivide); + if(i!=0) { + getGraphicsContext2D().setFill(Color.WHITE); + getGraphicsContext2D().fillRect(row * squareHeight, (column * squareWidth) + ((i) * squareWidthDivide) - lineWidth / 2, squareHeight, lineWidth); + } + } + } + private int squareWidth; private int squareHeight; private int columnCount; private int rowCount; - @Override + /*@Override public void repaint(List<Pair<Position, model.BoardElement>> positionedElements) { - clear(positionedElements); - paint(positionedElements); - paintLines(); - } + }*/ private void clear(List<Pair<Position, BoardElement>> positionedElements) { - for (Pair<Position, BoardElement> positionElement : positionedElements) { - Position position = positionElement.getKey(); - clearSquare(position.row(), position.column()); - } - } - private void paint(List<Pair<Position, BoardElement>> positionedElements) { - for(Pair<Position, BoardElement> pair : positionedElements){ - paintElementAtPosition(pair.getValue(), pair.getKey()); - } } + @Override - public void repaint(model.BoardElement[][] elements) { + public void repaint(HashMap<Position, ArrayList<BoardElement>> elementPositionGrid) { clear(); - paint(elements); + paint(elementPositionGrid); paintLines(); } @@ -49,10 +59,10 @@ public class FirefighterGrid extends Canvas implements Grid<model.BoardElement>{ getGraphicsContext2D().clearRect(0,0,getWidth(), getHeight()); } - private void paint(model.BoardElement[][] elements) { + private void paint(HashMap<Position, ArrayList<BoardElement>> elementPositionGrid) { for(int column = 0; column < columnCount; column++) for(int row = 0; row < rowCount; row++){ - paintElementAtPosition(elements[row][column], new Position(row, column)); + paintElementAtPosition(elementPositionGrid.get(new Position(row, column)),new Position(row,column)); } } @@ -87,10 +97,7 @@ public class FirefighterGrid extends Canvas implements Grid<model.BoardElement>{ getGraphicsContext2D().strokeLine(0, row*squareHeight, getWidth(), row*squareHeight); } - private void paintSquare(int row, int column, Color color){ - getGraphicsContext2D().setFill(color); - getGraphicsContext2D().fillRect(row*squareHeight,column*squareWidth,squareHeight,squareWidth); - } + private void clearSquare(int row, int column){ getGraphicsContext2D().clearRect(row*squareHeight,column*squareWidth,squareHeight,squareWidth); diff --git a/src/main/java/view/Grid.java b/src/main/java/view/Grid.java index 411850b3c029b1162b85eaae3cf521c474b50a6e..dc5d424a6c42b791ec28ad1bd83fe42b26e7727e 100644 --- a/src/main/java/view/Grid.java +++ b/src/main/java/view/Grid.java @@ -4,6 +4,8 @@ import javafx.util.Pair; import model.BoardElement; import util.Position; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; /** @@ -18,7 +20,7 @@ public interface Grid<E> { * * @param elements A list of pairs, each containing a position and the element to be displayed at that position. */ - void repaint(List<Pair<Position, E>> elements); + // void repaint(List<Pair<Position, E>> elements); /** * Repaint the grid with a two-dimensional array of elements. The array's dimensions should match @@ -53,6 +55,6 @@ public interface Grid<E> { */ int rowCount(); - void repaint(BoardElement[][] boardElements); + void repaint(HashMap<Position, ArrayList<BoardElement>> elementPositionGrid); }