From 42746ad5b09deaf9db0a32cbac0fd4b0acbb1910 Mon Sep 17 00:00:00 2001 From: Lukian LEIZOUR Date: Thu, 28 Mar 2024 18:15:42 +0100 Subject: [PATCH] commit --- images/horizontalLaser.png | Bin 232 -> 243 bytes images/verticalLaser.png | Bin 229 -> 247 bytes saves/maze1.txt | 187 +++++++++++++++++++++++++++++++++++++ saves/maze2.txt | 155 ++++++++++++++++++++++++++++++ userInterface/Grid.java | 17 ++-- userInterface/Window.java | 3 +- 6 files changed, 353 insertions(+), 9 deletions(-) create mode 100644 saves/maze1.txt create mode 100644 saves/maze2.txt diff --git a/images/horizontalLaser.png b/images/horizontalLaser.png index 0eb7a42c3035d9e8df840feaca0c79aee8f6f437..b7a14ba4a69ebc9cfa2180959b01d535f941992d 100644 GIT binary patch delta 155 zcmaFC_?dBnBnKM<1B0A>$Hs|@8ubSm82An{?wFYU7ATnK>EalY;r#Z-M!{wW0hWXH zn-*|6v;BO&$U=lALEy-X)weCHdy32A`ZqSb-COVP(K|s((bOrcIHoM=NgTyfuPBYA_`@qM#)$r%-q=|>r0CrPAY5)KL delta 149 zcmey&_=0hQBnJ}%1H;5v`DYUqHR=yDFz_8_Jf6QI1t^&8>Eaj?;r{lDpXy($K<>5bd(7MCJ(jXq oW3*<|%IQDsyAm-bV5CSFzm0L+9vEC2ui diff --git a/images/verticalLaser.png b/images/verticalLaser.png index 6e9a01b0ee50fb523b6c7fd68e596c9e1a6995c5..b50d083827dd98e015c5ce0beb0873b48d0ab790 100644 GIT binary patch delta 159 zcmaFL_?>ZrBnKM<1B2A5h@Odx8ubSm82An{?wFYU7ARQc>EalY;r#aeZq5b=5!Q>( zm$N7zEcmT|BEVo1OKR+gsT&M9iYJ}sO<&<#QkJWF?)kazk;^ToC7-{3e#Y-;whKH9 jBpr+!(iqM%%wjZQ&LAidA;_t}&YLTtQzvxZ#QkajFeN+w delta 149 zcmey)_>^&iBnJ}%1H;r6=WkC`)Tlqqz`%Ey@p%4<6rf;&r;B4qg!|ib3wav?1Xvw! zDL5*;*f0KSK?grm>rED(B(>%5X3jmvetgs0&%buOt~|ehs6RRxJ;F~7 W*m{b3>T7^@@ufz1ruk01B?|y&i98+v diff --git a/saves/maze1.txt b/saves/maze1.txt new file mode 100644 index 0000000..fed829f --- /dev/null +++ b/saves/maze1.txt @@ -0,0 +1,187 @@ +10 +20 +11 +1 +1 +1 +2 +1 +6 +1 +10 +1 +14 +1 +18 +1 +20 +2 +2 +2 +4 +2 +6 +2 +8 +2 +10 +2 +12 +2 +14 +2 +16 +2 +18 +2 +20 +3 +2 +3 +4 +3 +6 +3 +8 +3 +10 +3 +12 +3 +14 +3 +16 +3 +18 +3 +20 +4 +2 +4 +4 +4 +6 +4 +8 +4 +10 +4 +12 +4 +14 +4 +16 +4 +18 +4 +20 +5 +2 +5 +4 +5 +6 +5 +8 +5 +10 +5 +12 +5 +14 +5 +16 +5 +18 +5 +20 +6 +2 +6 +4 +6 +6 +6 +8 +6 +10 +6 +12 +6 +14 +6 +16 +6 +18 +6 +20 +7 +2 +7 +4 +7 +6 +7 +8 +7 +10 +7 +12 +7 +14 +7 +16 +7 +18 +7 +20 +8 +2 +8 +4 +8 +6 +8 +8 +8 +10 +8 +12 +8 +14 +8 +16 +8 +18 +8 +20 +9 +2 +9 +4 +9 +6 +9 +8 +9 +10 +9 +12 +9 +14 +9 +16 +9 +18 +9 +20 +10 +4 +10 +8 +10 +12 +10 +16 +10 +20 diff --git a/saves/maze2.txt b/saves/maze2.txt new file mode 100644 index 0000000..50d3371 --- /dev/null +++ b/saves/maze2.txt @@ -0,0 +1,155 @@ +10 +20 +11 +1 +1 +1 +2 +1 +6 +1 +10 +1 +14 +1 +18 +1 +20 +2 +2 +2 +4 +2 +6 +2 +7 +2 +8 +2 +10 +2 +12 +2 +13 +2 +14 +2 +15 +2 +16 +2 +18 +2 +20 +3 +4 +3 +18 +4 +2 +4 +4 +4 +5 +4 +6 +4 +8 +4 +9 +4 +10 +4 +12 +4 +14 +4 +16 +4 +18 +4 +19 +4 +20 +5 +12 +5 +14 +6 +2 +6 +4 +6 +6 +6 +7 +6 +8 +6 +10 +6 +11 +6 +12 +6 +14 +6 +15 +6 +16 +6 +18 +6 +19 +6 +20 +7 +1 +7 +2 +8 +2 +8 +4 +8 +6 +8 +8 +8 +10 +8 +11 +8 +12 +8 +13 +8 +14 +8 +16 +8 +17 +8 +18 +8 +20 +9 +4 +9 +12 +9 +16 +9 +18 +10 +3 +10 +4 +10 +8 +10 +12 +10 +16 +10 +20 diff --git a/userInterface/Grid.java b/userInterface/Grid.java index 5360e52..8e25f79 100644 --- a/userInterface/Grid.java +++ b/userInterface/Grid.java @@ -64,6 +64,8 @@ public class Grid extends JPanel { if (solving) { return; } + + this.universe.resetUniverse(); switch (this.universe.getGrid()[coord_i + 1][coord_j + 1]) { case 0: @@ -203,6 +205,10 @@ public class Grid extends JPanel { this.printUniverseGrid(this.universe.getGrid()); } + public void alert(String message) { + JOptionPane.showMessageDialog(this, message); + } + public void solve() { this.universe.resetUniverse(); final Universe universe = this.universe; @@ -230,7 +236,7 @@ public class Grid extends JPanel { int best_filled_boxes = 0; int best_nb_mirrors = 0; - long lastPrinted = Instant.now().toEpochMilli(); + long start = Instant.now().toEpochMilli(); do { if (universe.canEvolve(currentState)) { @@ -241,10 +247,7 @@ public class Grid extends JPanel { bestGrid = universe.copyGrid(); best_filled_boxes = universe.getFilledBoxes(); best_nb_mirrors = universe.getNbMirrors(); - - if (Instant.now().toEpochMilli() - lastPrinted > refreshRate) { - printUniverseGrid(bestGrid); - } + printUniverseGrid(bestGrid); } } else if (stack.size() > 0) { @@ -256,8 +259,8 @@ public class Grid extends JPanel { } while (stack.size() != 0 && solving == true); solving = false; - Universe.print(bestGrid, width + 2, height + 2, 4, 4); - printUniverseGrid(bestGrid); + String message = "Solved in " + ((Instant.now().toEpochMilli() - start)/1000) + "s and " + ((Instant.now().toEpochMilli() - start)%1000) + "ms \nMirrors : " + best_nb_mirrors + "\nLaser length : " + best_filled_boxes; + alert(message); } }); computeThread.start(); diff --git a/userInterface/Window.java b/userInterface/Window.java index 5eec67e..b9c4576 100644 --- a/userInterface/Window.java +++ b/userInterface/Window.java @@ -109,8 +109,6 @@ public class Window extends JFrame { toolsMenu.addSeparator(); toolsMenu.add(changeSize); toolsMenu.addSeparator(); - toolsMenu.add(solve); - toolsMenu.addSeparator(); toolsMenu.add(reset); solveMenu.add(solve); @@ -167,6 +165,7 @@ public class Window extends JFrame { this.universe.changeUniverseDim(universe_width + 2, universe_height + 2); this.universe.changeUniverseStart(start_i, start_j, start_dir); + this.universe.resetUniverseObstacles(); while (true) { try {