diff --git a/.gradle/8.10.2/checksums/checksums.lock b/.gradle/8.10.2/checksums/checksums.lock index 9a48770de98b1b2b8eb626e25112f35033bc89f5..b2d0593e71b75d1177a236bf0940220819eecafb 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/checksums/md5-checksums.bin b/.gradle/8.10.2/checksums/md5-checksums.bin index 5e49250017d839805bf528a117603f62b6f034dd..12a8c3ecde1fa9d56c8078f7f46fa7730f2b8b53 100644 Binary files a/.gradle/8.10.2/checksums/md5-checksums.bin and b/.gradle/8.10.2/checksums/md5-checksums.bin differ diff --git a/.gradle/8.10.2/checksums/sha1-checksums.bin b/.gradle/8.10.2/checksums/sha1-checksums.bin index 1acd6a6ca0a15339e0adaecdb0d0317f6f0af581..e63ce417f3936d526c7f4da390240c4c71296891 100644 Binary files a/.gradle/8.10.2/checksums/sha1-checksums.bin and b/.gradle/8.10.2/checksums/sha1-checksums.bin differ diff --git a/.gradle/8.10.2/executionHistory/executionHistory.bin b/.gradle/8.10.2/executionHistory/executionHistory.bin index c0a42c7452a4575babe301dc69faa530ed2cbe90..fdb4eeffcc87945fbb049d92ca05c3c10cf3c6b5 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 98d73a3399a2b7b9b7ff57fa3eea70a4f7839ddc..41422f306b17568d7e6c1767886c73e5320db41b 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 c35144f2a00d4ba378afd60d01af48907f17982f..5cb4b01e4eccee19eba6934f31434286f145f7db 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 4f35ed9a365ea24a158c92d38ef87c6bf1242313..3f1209eba2d344f756b5adde7102e707598993e4 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 348ea7ad62ba65646d45e49e668d46333d7a03ed..953dd5ee6e969ca039b09b633dfe0194aca17e2a 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 9ba9563f962b6585455bfe2c037bc6af57222143..a1da752f5fdc61814a5539ca32ff72919cf99d6f 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 a4dcfe8c2c2a1e7d1b787d75a9f1db6df78b7604..d6ceb38bef8eeb41ce802c1b34c2aa5040e8e41a 100644 Binary files a/.gradle/file-system.probe and b/.gradle/file-system.probe differ diff --git a/build/classes/java/main/app/SimulatorApplication.class b/build/classes/java/main/app/SimulatorApplication.class index e59db45cc2ae6bd48b1b517132ce22b532b94837..b36b7c02d18654382c104e681c6af17a8589e001 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 2ae9c8dfd27b8159b1fbda744fc51dbcf74a7208..b7d3429c3ee350a8620694ba61082c3e446107d4 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/FirefighterBoard$1.class b/build/classes/java/main/model/FirefighterBoard$1.class deleted file mode 100644 index d64505cab365e534a54be514fc590eb34187f29d..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/FirefighterBoard$1.class and /dev/null differ diff --git a/build/classes/java/main/model/FirefighterBoard.class b/build/classes/java/main/model/FirefighterBoard.class deleted file mode 100644 index deaf4965eca3a1db04908dcb2c3318b9eb99139d..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/FirefighterBoard.class and /dev/null differ diff --git a/build/classes/java/main/model/ModelElement.class b/build/classes/java/main/model/ModelElement.class index a8d4045ab891667fdd4c00b95d0a3805b20922b6..8f8a3219a1ccc625720ed323ef23e7739a32a722 100644 Binary files a/build/classes/java/main/model/ModelElement.class and b/build/classes/java/main/model/ModelElement.class differ diff --git a/build/distributions/firefighter-shadow.tar b/build/distributions/firefighter-shadow.tar index 68be05d50c3a4b953a130dec3492279ddf3b8a7d..8c6edb56869d9dd1e887659c37c83192f9ca3c92 100644 Binary files a/build/distributions/firefighter-shadow.tar and b/build/distributions/firefighter-shadow.tar differ diff --git a/build/distributions/firefighter-shadow.zip b/build/distributions/firefighter-shadow.zip index d6211d0c2deeaf119090160c1d1c5cca7bccfc13..5c89420baff29d967f7ee67f6bb0e658e04549f1 100644 Binary files a/build/distributions/firefighter-shadow.zip and b/build/distributions/firefighter-shadow.zip differ diff --git a/build/distributions/firefighter.tar b/build/distributions/firefighter.tar index f78a92995dee800db6be5de90a1521d7e11f29d7..7fb3be344f7e40cb9679ff8ad1460e6081f777e6 100644 Binary files a/build/distributions/firefighter.tar and b/build/distributions/firefighter.tar differ diff --git a/build/distributions/firefighter.zip b/build/distributions/firefighter.zip index 6723a0ad29115e8d53153f57c4763ff60684a9cf..1dfed1fa6f1ed30bdf4e238760ae8e96bf6015df 100644 Binary files a/build/distributions/firefighter.zip and b/build/distributions/firefighter.zip differ diff --git a/build/libs/firefighter-all.jar b/build/libs/firefighter-all.jar index df96d958bcabce52945f32b3edecc08b4153def0..88dad87556b6a2b4760ab877bad8aeee88a9d7ce 100644 Binary files a/build/libs/firefighter-all.jar and b/build/libs/firefighter-all.jar differ diff --git a/build/libs/firefighter.jar b/build/libs/firefighter.jar index 282518b41b4f7a4d6be4e881bb3e4e1e370ce27e..d2c86d78bf3773117e163a4eac7b1d0a71c4cb7b 100644 Binary files a/build/libs/firefighter.jar and b/build/libs/firefighter.jar differ diff --git a/build/reports/tests/test/classes/model.FirefighterBoardTest.html b/build/reports/tests/test/classes/model.FirefighterBoardTest.html index 946674e0c4eea02e35545d44837aa27438771afb..bafdf34e7c29583f2ffee442a11dc1a78bf741e2 100644 --- a/build/reports/tests/test/classes/model.FirefighterBoardTest.html +++ b/build/reports/tests/test/classes/model.FirefighterBoardTest.html @@ -41,7 +41,7 @@ </td> <td> <div class="infoBox" id="duration"> -<div class="counter">0.279s</div> +<div class="counter">0.098s</div> <p>duration</p> </div> </td> @@ -76,12 +76,12 @@ </thead> <tr> <td class="success">testColumnCount()</td> -<td class="success">0.234s</td> +<td class="success">0.078s</td> <td class="success">passed</td> </tr> <tr> <td class="success">testGetState_afterSet()</td> -<td class="success">0.022s</td> +<td class="success">0.016s</td> <td class="success">passed</td> </tr> <tr> @@ -91,7 +91,7 @@ </tr> <tr> <td class="success">testStepNumber()</td> -<td class="success">0.021s</td> +<td class="success">0.002s</td> <td class="success">passed</td> </tr> </table> @@ -104,7 +104,7 @@ <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/> </label> </div>Generated by -<a href="http://www.gradle.org">Gradle 8.10.2</a> at 15 nov. 2024, 01:39:00</p> +<a href="http://www.gradle.org">Gradle 8.10.2</a> at 16 nov. 2024, 18:17:08</p> </div> </div> </body> diff --git a/build/reports/tests/test/classes/view.FirefighterGridTest.html b/build/reports/tests/test/classes/view.FirefighterGridTest.html deleted file mode 100644 index 9cad9020d084b420390b37744c05fea2a4afe227..0000000000000000000000000000000000000000 --- a/build/reports/tests/test/classes/view.FirefighterGridTest.html +++ /dev/null @@ -1,101 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> -<meta http-equiv="x-ua-compatible" content="IE=edge"/> -<title>Test results - FirefighterGridTest</title> -<link href="../css/base-style.css" rel="stylesheet" type="text/css"/> -<link href="../css/style.css" rel="stylesheet" type="text/css"/> -<script src="../js/report.js" type="text/javascript"></script> -</head> -<body> -<div id="content"> -<h1>FirefighterGridTest</h1> -<div class="breadcrumbs"> -<a href="../index.html">all</a> > -<a href="../packages/view.html">view</a> > FirefighterGridTest</div> -<div id="summary"> -<table> -<tr> -<td> -<div class="summaryGroup"> -<table> -<tr> -<td> -<div class="infoBox" id="tests"> -<div class="counter">2</div> -<p>tests</p> -</div> -</td> -<td> -<div class="infoBox" id="failures"> -<div class="counter">0</div> -<p>failures</p> -</div> -</td> -<td> -<div class="infoBox" id="ignored"> -<div class="counter">0</div> -<p>ignored</p> -</div> -</td> -<td> -<div class="infoBox" id="duration"> -<div class="counter">1.763s</div> -<p>duration</p> -</div> -</td> -</tr> -</table> -</div> -</td> -<td> -<div class="infoBox success" id="successRate"> -<div class="percent">100%</div> -<p>successful</p> -</div> -</td> -</tr> -</table> -</div> -<div id="tabs"> -<ul class="tabLinks"> -<li> -<a href="#tab0">Tests</a> -</li> -</ul> -<div id="tab0" class="tab"> -<h2>Tests</h2> -<table> -<thead> -<tr> -<th>Test</th> -<th>Duration</th> -<th>Result</th> -</tr> -</thead> -<tr> -<td class="success">testColumnCount()</td> -<td class="success">1.761s</td> -<td class="success">passed</td> -</tr> -<tr> -<td class="success">testRowCount()</td> -<td class="success">0.002s</td> -<td class="success">passed</td> -</tr> -</table> -</div> -</div> -<div id="footer"> -<p> -<div> -<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines -<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/> -</label> -</div>Generated by -<a href="http://www.gradle.org">Gradle 8.10.2</a> at 15 nov. 2024, 01:39:00</p> -</div> -</div> -</body> -</html> diff --git a/build/reports/tests/test/index.html b/build/reports/tests/test/index.html index 59ffa3a2d66c934f6d1ad55b6fac2c0ecaa4c4fc..6745010e7e1ed0ce0dfbbaf18cf8f3aeeeff484e 100644 --- a/build/reports/tests/test/index.html +++ b/build/reports/tests/test/index.html @@ -20,7 +20,7 @@ <tr> <td> <div class="infoBox" id="tests"> -<div class="counter">6</div> +<div class="counter">4</div> <p>tests</p> </div> </td> @@ -38,7 +38,7 @@ </td> <td> <div class="infoBox" id="duration"> -<div class="counter">2.042s</div> +<div class="counter">0.098s</div> <p>duration</p> </div> </td> @@ -85,17 +85,7 @@ <td>4</td> <td>0</td> <td>0</td> -<td>0.279s</td> -<td class="success">100%</td> -</tr> -<tr> -<td class="success"> -<a href="packages/view.html">view</a> -</td> -<td>2</td> -<td>0</td> -<td>0</td> -<td>1.763s</td> +<td>0.098s</td> <td class="success">100%</td> </tr> </tbody> @@ -122,17 +112,7 @@ <td>4</td> <td>0</td> <td>0</td> -<td>0.279s</td> -<td class="success">100%</td> -</tr> -<tr> -<td class="success"> -<a href="classes/view.FirefighterGridTest.html">view.FirefighterGridTest</a> -</td> -<td>2</td> -<td>0</td> -<td>0</td> -<td>1.763s</td> +<td>0.098s</td> <td class="success">100%</td> </tr> </tbody> @@ -146,7 +126,7 @@ <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/> </label> </div>Generated by -<a href="http://www.gradle.org">Gradle 8.10.2</a> at 15 nov. 2024, 01:39:00</p> +<a href="http://www.gradle.org">Gradle 8.10.2</a> at 16 nov. 2024, 18:17:08</p> </div> </div> </body> diff --git a/build/reports/tests/test/packages/model.html b/build/reports/tests/test/packages/model.html index 2c9dac1338405c7c20355389938aedb0c89dc6f7..513bbe36966c97444128570caef41f9ff98dbd8c 100644 --- a/build/reports/tests/test/packages/model.html +++ b/build/reports/tests/test/packages/model.html @@ -40,7 +40,7 @@ </td> <td> <div class="infoBox" id="duration"> -<div class="counter">0.279s</div> +<div class="counter">0.098s</div> <p>duration</p> </div> </td> @@ -83,7 +83,7 @@ <td>4</td> <td>0</td> <td>0</td> -<td>0.279s</td> +<td>0.098s</td> <td class="success">100%</td> </tr> </table> @@ -96,7 +96,7 @@ <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/> </label> </div>Generated by -<a href="http://www.gradle.org">Gradle 8.10.2</a> at 15 nov. 2024, 01:39:00</p> +<a href="http://www.gradle.org">Gradle 8.10.2</a> at 16 nov. 2024, 18:17:08</p> </div> </div> </body> diff --git a/build/reports/tests/test/packages/view.html b/build/reports/tests/test/packages/view.html deleted file mode 100644 index aef2dd0099015772f7a8203480efcfc98c68a66a..0000000000000000000000000000000000000000 --- a/build/reports/tests/test/packages/view.html +++ /dev/null @@ -1,103 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> -<meta http-equiv="x-ua-compatible" content="IE=edge"/> -<title>Test results - Package view</title> -<link href="../css/base-style.css" rel="stylesheet" type="text/css"/> -<link href="../css/style.css" rel="stylesheet" type="text/css"/> -<script src="../js/report.js" type="text/javascript"></script> -</head> -<body> -<div id="content"> -<h1>Package view</h1> -<div class="breadcrumbs"> -<a href="../index.html">all</a> > view</div> -<div id="summary"> -<table> -<tr> -<td> -<div class="summaryGroup"> -<table> -<tr> -<td> -<div class="infoBox" id="tests"> -<div class="counter">2</div> -<p>tests</p> -</div> -</td> -<td> -<div class="infoBox" id="failures"> -<div class="counter">0</div> -<p>failures</p> -</div> -</td> -<td> -<div class="infoBox" id="ignored"> -<div class="counter">0</div> -<p>ignored</p> -</div> -</td> -<td> -<div class="infoBox" id="duration"> -<div class="counter">1.763s</div> -<p>duration</p> -</div> -</td> -</tr> -</table> -</div> -</td> -<td> -<div class="infoBox success" id="successRate"> -<div class="percent">100%</div> -<p>successful</p> -</div> -</td> -</tr> -</table> -</div> -<div id="tabs"> -<ul class="tabLinks"> -<li> -<a href="#tab0">Classes</a> -</li> -</ul> -<div id="tab0" class="tab"> -<h2>Classes</h2> -<table> -<thead> -<tr> -<th>Class</th> -<th>Tests</th> -<th>Failures</th> -<th>Ignored</th> -<th>Duration</th> -<th>Success rate</th> -</tr> -</thead> -<tr> -<td class="success"> -<a href="../classes/view.FirefighterGridTest.html">FirefighterGridTest</a> -</td> -<td>2</td> -<td>0</td> -<td>0</td> -<td>1.763s</td> -<td class="success">100%</td> -</tr> -</table> -</div> -</div> -<div id="footer"> -<p> -<div> -<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines -<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/> -</label> -</div>Generated by -<a href="http://www.gradle.org">Gradle 8.10.2</a> at 15 nov. 2024, 01:39:00</p> -</div> -</div> -</body> -</html> diff --git a/build/test-results/test/TEST-model.FirefighterBoardTest.xml b/build/test-results/test/TEST-model.FirefighterBoardTest.xml index 87b9b2fd4eed371010f57a8aab88ed34a502f84f..25b19d0fe71cd92c90d777d2be6487ddeb36aa41 100644 --- a/build/test-results/test/TEST-model.FirefighterBoardTest.xml +++ b/build/test-results/test/TEST-model.FirefighterBoardTest.xml @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="UTF-8"?> -<testsuite name="model.FirefighterBoardTest" tests="4" skipped="0" failures="0" errors="0" timestamp="2024-11-15T00:38:58" hostname="DESKTOP-ETSE1TF" time="0.285"> +<testsuite name="model.FirefighterBoardTest" tests="4" skipped="0" failures="0" errors="0" timestamp="2024-11-16T17:17:08" hostname="DESKTOP-ETSE1TF" time="0.103"> <properties/> - <testcase name="testColumnCount()" classname="model.FirefighterBoardTest" time="0.234"/> - <testcase name="testGetState_afterSet()" classname="model.FirefighterBoardTest" time="0.022"/> + <testcase name="testColumnCount()" classname="model.FirefighterBoardTest" time="0.078"/> + <testcase name="testGetState_afterSet()" classname="model.FirefighterBoardTest" time="0.016"/> <testcase name="testRowCount()" classname="model.FirefighterBoardTest" time="0.002"/> - <testcase name="testStepNumber()" classname="model.FirefighterBoardTest" time="0.021"/> + <testcase name="testStepNumber()" classname="model.FirefighterBoardTest" time="0.002"/> <system-out><![CDATA[]]></system-out> <system-err><![CDATA[]]></system-err> </testsuite> diff --git a/build/test-results/test/TEST-view.FirefighterGridTest.xml b/build/test-results/test/TEST-view.FirefighterGridTest.xml deleted file mode 100644 index c2903db4997ae6d6c53c3393bb83d77805e69845..0000000000000000000000000000000000000000 --- a/build/test-results/test/TEST-view.FirefighterGridTest.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<testsuite name="view.FirefighterGridTest" tests="2" skipped="0" failures="0" errors="0" timestamp="2024-11-15T00:38:58" hostname="DESKTOP-ETSE1TF" time="1.764"> - <properties/> - <testcase name="testColumnCount()" classname="view.FirefighterGridTest" time="1.761"/> - <testcase name="testRowCount()" classname="view.FirefighterGridTest" time="0.002"/> - <system-out><![CDATA[]]></system-out> - <system-err><![CDATA[]]></system-err> -</testsuite> diff --git a/build/test-results/test/binary/results.bin b/build/test-results/test/binary/results.bin index 76a2d705df0fde4e96a98b71c3dc1a7bb9825ddf..a107e74bac0a156950871a4a3fe83cd91a688753 100644 Binary files a/build/test-results/test/binary/results.bin and b/build/test-results/test/binary/results.bin differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Controller.class.uniqueId3 b/build/tmp/compileJava/compileTransaction/stash-dir/Controller.class.uniqueId3 index 2ae9c8dfd27b8159b1fbda744fc51dbcf74a7208..cf00614109212f6eb89b53189568778874c810a0 100644 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/Controller.class.uniqueId3 and b/build/tmp/compileJava/compileTransaction/stash-dir/Controller.class.uniqueId3 differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/FirefighterBoard$1.class.uniqueId1 b/build/tmp/compileJava/compileTransaction/stash-dir/FirefighterBoard$1.class.uniqueId1 deleted file mode 100644 index d64505cab365e534a54be514fc590eb34187f29d..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/FirefighterBoard$1.class.uniqueId1 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/FirefighterBoard.class.uniqueId0 b/build/tmp/compileJava/compileTransaction/stash-dir/FirefighterBoard.class.uniqueId0 deleted file mode 100644 index deaf4965eca3a1db04908dcb2c3318b9eb99139d..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/FirefighterBoard.class.uniqueId0 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/module-info.class.uniqueId2 b/build/tmp/compileJava/compileTransaction/stash-dir/module-info.class.uniqueId2 deleted file mode 100644 index f0b28b3b4966d6d1c1eac55f53fff160e8e01b67..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/module-info.class.uniqueId2 and /dev/null differ diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin index 1151d7ece14bd6617d696b95a15f9b265e30e073..e8816291e0944805667e492410d9cc7959533c67 100644 Binary files a/build/tmp/compileJava/previous-compilation-data.bin and b/build/tmp/compileJava/previous-compilation-data.bin differ diff --git a/build/tmp/compileTestJava/previous-compilation-data.bin b/build/tmp/compileTestJava/previous-compilation-data.bin index 8bcd92c263551a4fa9f3451ae525fe5896052001..52c7a82cea64dd185ab8069082e50a8050625d84 100644 Binary files a/build/tmp/compileTestJava/previous-compilation-data.bin and b/build/tmp/compileTestJava/previous-compilation-data.bin differ diff --git a/build/tmp/shadowJar/MANIFEST.MF b/build/tmp/shadowJar/MANIFEST.MF index 59499bce4a2bd51cba227b7c00fcf745b19c95a4..2c5dafadb5f53a219e1c22537b872baf7d0b350d 100644 --- a/build/tmp/shadowJar/MANIFEST.MF +++ b/build/tmp/shadowJar/MANIFEST.MF @@ -1,2 +1,3 @@ Manifest-Version: 1.0 +Main-Class: app.SimulatorMain diff --git a/src/main/java/app/SimulatorApplication.java b/src/main/java/app/SimulatorApplication.java index e88b0e9856086cc6f53f2782175393dca6365eb6..09638001b8ccac68352006236c540ffab80eeffd 100644 --- a/src/main/java/app/SimulatorApplication.java +++ b/src/main/java/app/SimulatorApplication.java @@ -12,7 +12,7 @@ import java.net.URL; public class SimulatorApplication extends javafx.application.Application { private static final String VIEW_RESOURCE_PATH = "/view/view.fxml"; - private static final String APP_NAME = "Firefighter simulator"; + private static final String APP_NAME = "StandardFirefighter simulator"; private static final int ROW_COUNT = 20; private static final int COLUMN_COUNT = 20; private static final int BOX_WIDTH = 50; diff --git a/src/main/java/controller/Controller.java b/src/main/java/controller/Controller.java index 2a60897c6eb8ba847cb8589840c16a0f175ce0a3..03c50c60d4e216bea0130ece38c151a484eff585 100644 --- a/src/main/java/controller/Controller.java +++ b/src/main/java/controller/Controller.java @@ -14,7 +14,7 @@ import javafx.util.Duration; import javafx.util.Pair; import model.Board; import model.ModelElement; -import model.FirefighterBoard; +import model.FFBoard; import util.Position; import view.Grid; import view.ViewElement; @@ -54,8 +54,8 @@ public class Controller { pauseToggleButton.setSelected(true); } - private void setModel(FirefighterBoard firefighterBoard) { - this.board = requireNonNull(firefighterBoard, "firefighter.model is null"); + private void setModel(FFBoard FFBoard) { + this.board = requireNonNull(FFBoard, "firefighter.model is null"); } private void updateBoard(){ @@ -88,6 +88,9 @@ public class Controller { if (squareState.contains(ModelElement.FIRE)){ return ViewElement.FIRE; } + if (squareState.contains(ModelElement.MOUNTAIN)){ + return ViewElement.MOUNTAIN; + } return ViewElement.EMPTY; } @@ -126,7 +129,7 @@ public class Controller { public void initialize(int squareWidth, int squareHeight, int columnCount, int rowCount, int initialFireCount, int initialFirefighterCount) { grid.setDimensions(columnCount, rowCount, squareWidth, squareHeight); - this.setModel(new FirefighterBoard(columnCount, rowCount, initialFireCount, initialFirefighterCount)); + this.setModel(new FFBoard(columnCount, rowCount, initialFireCount, initialFirefighterCount)); repaintGrid(); } diff --git a/src/main/java/model/Behavior.java b/src/main/java/model/Behavior.java index fd14b4743c7c4cf85ed465429e473c7b0b62587d..577e2690804681c61d8e20545a1b5d66604a52db 100644 --- a/src/main/java/model/Behavior.java +++ b/src/main/java/model/Behavior.java @@ -1,5 +1,12 @@ package model; +import util.Position; + +import java.util.List; + public interface Behavior { - public void move(); + public List<Position> getNext(BoardData boarddata,List<Position>positions); + public default Boolean isLegalMove(){ + return true; + } } diff --git a/src/main/java/model/BoardData.java b/src/main/java/model/BoardData.java new file mode 100644 index 0000000000000000000000000000000000000000..b7371b7ab4eeab33311cc7b76244f6fcf53f296e --- /dev/null +++ b/src/main/java/model/BoardData.java @@ -0,0 +1,17 @@ +package model; + +import util.Position; + +import java.util.List; +import java.util.Map; + +public interface BoardData { + public List<List<Position>> getPositions(); + public void setPositions( List<List<Position>> Positions); + public Map<Position, List<Position>> getNeighbors(); + public List<Position> getNeighbor(Position position); + public int getStep(); + public void setStep(int step); + public void initialize(); + +} diff --git a/src/main/java/model/Element.java b/src/main/java/model/Element.java index 76b4de8b81d124be94b6db2338ed7351cc73e58a..df9b042be6b27129cdebe4be906ad00251104334 100644 --- a/src/main/java/model/Element.java +++ b/src/main/java/model/Element.java @@ -9,10 +9,9 @@ public abstract class Element { ModelElement type; Behavior behavior; List<ModelElement> obstacles; - public Element(ModelElement type, Behavior behavior, ArrayList<ModelElement> obstacles) { + public Element(ModelElement type, Behavior behavior) { this.type = type; this.behavior = behavior; - this.obstacles = obstacles; } - public abstract List<Position> Update(List<Position>[] board,List<Position> modifiedList); + public abstract List<Position> Update(BoardData board, List<Position> modifiedList); } diff --git a/src/main/java/model/FFBehavior.java b/src/main/java/model/FFBehavior.java new file mode 100644 index 0000000000000000000000000000000000000000..90d3d7c8bf6a60b3c2d6b07d649ebe4f363dd39f --- /dev/null +++ b/src/main/java/model/FFBehavior.java @@ -0,0 +1,11 @@ +package model; + +import java.util.ArrayList; +import java.util.List; + +public abstract class FFBehavior implements Behavior { + public ModelElement element; + public FFBehavior(ModelElement element) { + this.element = element; + } +} diff --git a/src/main/java/model/FirefighterBoard.java b/src/main/java/model/FFBoard.java similarity index 64% rename from src/main/java/model/FirefighterBoard.java rename to src/main/java/model/FFBoard.java index 4202314537660311a459d8b6d2f57fe166a0c3e7..a8fb054fc1311f07aebdc64bfca0550ee81f1f88 100644 --- a/src/main/java/model/FirefighterBoard.java +++ b/src/main/java/model/FFBoard.java @@ -1,24 +1,25 @@ package model; import util.Position; +import util.TargetStrategy; import java.util.*; -public class FirefighterBoard implements Board<List<ModelElement>> { +public class FFBoard implements Board<List<ModelElement>> { private final int columnCount; private final int rowCount; private final int initialFireCount; private final int initialFirefighterCount; - private final model.TargetStrategy targetStrategy = new model.TargetStrategy(); - private List<Position> firefighterPositions; - private Set<Position> firePositions; - private Map<Position, List<Position>> neighbors = new HashMap(); + private final TargetStrategy targetStrategy = new TargetStrategy(); + private BoardData boardData; private final Position[][] positions; - private int step = 0; + private FFUpdater FFUpdater ; private final Random randomGenerator = new Random(); - public FirefighterBoard(int columnCount, int rowCount, int initialFireCount, int initialFirefighterCount) { + public FFBoard(int columnCount, int rowCount, int initialFireCount, int initialFirefighterCount) { + boardData=new FFBoardData(); + FFUpdater=new FFUpdater(); this.columnCount = columnCount; this.rowCount = rowCount; this.positions = new Position[rowCount][columnCount]; @@ -32,7 +33,7 @@ public class FirefighterBoard implements Board<List<ModelElement>> { if (column > 0) list.add(positions[row][column - 1]); if (row < rowCount - 1) list.add(positions[row + 1][column]); if (column < columnCount - 1) list.add(positions[row][column + 1]); - neighbors.put(positions[row][column], list); + boardData.getNeighbors().put(positions[row][column], list); } this.initialFireCount = initialFireCount; this.initialFirefighterCount = initialFirefighterCount; @@ -40,12 +41,12 @@ public class FirefighterBoard implements Board<List<ModelElement>> { } public void initializeElements() { - firefighterPositions = new ArrayList<>(); - firePositions = new HashSet<>(); + boardData.initialize(); + for (int index = 0; index < initialFireCount; index++) - firePositions.add(randomPosition()); + boardData.getPositions().get(ModelElement.FIRE.ordinal()).add(randomPosition()); for (int index = 0; index < initialFirefighterCount; index++) - firefighterPositions.add(randomPosition()); + boardData.getPositions().get(ModelElement.FIREFIGHTER.ordinal()).add(randomPosition()); } private Position randomPosition() { @@ -54,6 +55,8 @@ public class FirefighterBoard implements Board<List<ModelElement>> { @Override public List<ModelElement> getState(Position position) { + List<Position> firefighterPositions=boardData.getPositions().get(ModelElement.FIREFIGHTER.ordinal()); + List<Position> firePositions =boardData.getPositions().get(ModelElement.FIRE.ordinal()); List<ModelElement> result = new ArrayList<>(); for (Position firefighterPosition : firefighterPositions) if (firefighterPosition.equals(position)) @@ -74,64 +77,55 @@ public class FirefighterBoard implements Board<List<ModelElement>> { } public List<Position> updateToNextGeneration() { - List<Position> modifiedPositions = updateFirefighters(); + /*List<Position> modifiedPositions = updateFirefighters(); modifiedPositions.addAll(updateFires()); - step++; + boardData.setStep(boardData.getStep()+1); + return modifiedPositions;*/ + List<Position> modifiedPositions = FFUpdater.updateAll(boardData); + boardData.setStep(boardData.getStep()+1); return modifiedPositions; } - private List<Position> updateFires() { - List<Position> modifiedPositions = new ArrayList<>(); - if (step % 2 == 0) { - List<Position> newFirePositions = new ArrayList<>(); - for (Position fire : firePositions) { - newFirePositions.addAll(neighbors.get(fire)); - } - firePositions.addAll(newFirePositions); - modifiedPositions.addAll(newFirePositions); - } - return modifiedPositions; - - } @Override public int stepNumber() { - return step; + return boardData.getStep(); } private List<Position> updateFirefighters() { - List<Position> modifiedPosition = new ArrayList<>(); + List<Position> modifiedPosition = new ArrayList<>();/* + List<Position> firefighterPositions = boardData.getPositions().get(ModelElement.FIREFIGHTER.ordinal()); + List<Position> firePositions = boardData.getPositions().get(ModelElement.FIRE.ordinal()); List<Position> firefighterNewPositions = new ArrayList<>(); for (Position firefighterPosition : firefighterPositions) { Position newFirefighterPosition = targetStrategy.neighborClosestToFire(firefighterPosition, - firePositions, neighbors); + firePositions, boardData.getNeighbors()); firefighterNewPositions.add(newFirefighterPosition); extinguish(newFirefighterPosition); modifiedPosition.add(firefighterPosition); modifiedPosition.add(newFirefighterPosition); - List<Position> neighborFirePositions = neighbors.get(newFirefighterPosition).stream() + List<Position> neighborFirePositions = boardData.getNeighbors().get(newFirefighterPosition).stream() .filter(firePositions::contains).toList(); for (Position firePosition : neighborFirePositions) extinguish(firePosition); modifiedPosition.addAll(neighborFirePositions); } - firefighterPositions = firefighterNewPositions; + firefighterPositions = firefighterNewPositions;*/ return modifiedPosition; } @Override public void reset() { - step = 0; + boardData.setStep(0); initializeElements(); } - private void extinguish(Position position) { - firePositions.remove(position); - } @Override public void setState(List<ModelElement> state, Position position) { + List<Position> firefighterPositions = boardData.getPositions().get(ModelElement.FIREFIGHTER.ordinal()); + List<Position> firePositions = boardData.getPositions().get(ModelElement.FIRE.ordinal()); firePositions.remove(position); for (; ; ) { if (!firefighterPositions.remove(position)) break; diff --git a/src/main/java/model/FFBoardData.java b/src/main/java/model/FFBoardData.java new file mode 100644 index 0000000000000000000000000000000000000000..ae71a9320db857a03409070c421e36a8ace4b31b --- /dev/null +++ b/src/main/java/model/FFBoardData.java @@ -0,0 +1,48 @@ +package model; + +import util.Position; + +import java.util.*; + +public class FFBoardData implements BoardData{ + private List<List<Position>> positions; + private final Map<Position, List<Position>> neighbors = new HashMap<Position, List<Position>>(); + private int step; + + public FFBoardData() { + initialize(); + } + public void initialize(){ + step=0; + positions = new ArrayList<>(); + for (int i = 0; i < ModelElement.values().length; i++) { + positions.add(new ArrayList<>()); + } + } + + public List<List<Position>> getPositions() { + return positions; + } + public List<Position> getPositions(ModelElement modelElement) { + return positions.get(modelElement.ordinal()); + } + public void setPositions( List<List<Position>> Positions) { + this.positions = Positions; + } + public Map<Position, List<Position>> getNeighbors() { + return neighbors; + } + public List<Position> getNeighbor(Position position) { + return neighbors.get(position); + } + + @Override + public int getStep() { + return step; + } + + @Override + public void setStep(int step) { + this.step=step; + } +} diff --git a/src/main/java/model/FFUpdater.java b/src/main/java/model/FFUpdater.java new file mode 100644 index 0000000000000000000000000000000000000000..8710d56ade74658b18644eab181fd9cc4f95064f --- /dev/null +++ b/src/main/java/model/FFUpdater.java @@ -0,0 +1,27 @@ +package model; + +import util.Position; + +import java.util.ArrayList; +import java.util.List; + +public class FFUpdater implements Updater { + Element[] elements; + + public FFUpdater() { + this.elements=new Element[ModelElement.values().length]; + for (int i = 0; i < ModelElement.values().length; i++) { + this.elements[i]=ModelElement.values()[i].instanciate(); + } + } + + @Override + public List<Position> updateAll(BoardData boardData) { + List<Position> modifiedList=new ArrayList<Position>(); + for (int i = 0; i < ModelElement.values().length; i++) { + modifiedList=this.elements[i].Update(boardData,modifiedList); + System.out.println(modifiedList.toString()); + } + return modifiedList; + } +} diff --git a/src/main/java/model/Fire.java b/src/main/java/model/Fire.java index 545268257546d8b70d0efc224286f5e2acdd1f17..065250b9fd2cefaec6e3bf038b5ee6d2aeac02b5 100644 --- a/src/main/java/model/Fire.java +++ b/src/main/java/model/Fire.java @@ -9,12 +9,16 @@ public class Fire extends Element{ public Fire() { super(ModelElement.FIRE, - new FireBehavior(), - new ArrayList<ModelElement>()); + new FireBehavior(ModelElement.FIRE)); } @Override - public List<Position> Update(List<Position>[] board, List<Position> modifiedList) { - return List.of(); + public List<Position> Update(BoardData boardData, List<Position> modifPositions) { + List<Position> firePositions = boardData.getPositions().get(this.type.ordinal()); + List<Position> modifiedPositions = new ArrayList<Position>(modifPositions); + List<Position> newFirePositions = behavior.getNext(boardData,firePositions); + firePositions.addAll(newFirePositions); + modifiedPositions.addAll(newFirePositions); + return modifiedPositions; } } diff --git a/src/main/java/model/FireBehavior.java b/src/main/java/model/FireBehavior.java index bb701b3834e7b4c8a6a9c88a493dbc941911a771..c9a3c7240f0b3f0f5821d82a00f31fb8d4da4f0f 100644 --- a/src/main/java/model/FireBehavior.java +++ b/src/main/java/model/FireBehavior.java @@ -1,8 +1,27 @@ package model; -public class FireBehavior implements Behavior { - @Override - public void move() { +import util.Position; + +import java.util.ArrayList; +import java.util.List; + +public class FireBehavior extends FFBehavior { + + public FireBehavior(ModelElement element) { + super(element); + } + + @Override + public List<Position> getNext(BoardData boardData, List<Position> positions) { + List<Position> firePositions = boardData.getPositions().get(element.ordinal()); + List<Position> newFirePositions = new ArrayList<>(); + if (boardData.getStep() % 2 == 0) { + for (Position fire : firePositions) { + boardData.getNeighbors().get(fire).removeAll(newFirePositions); + newFirePositions.addAll(boardData.getNeighbors().get(fire)); + } + } + return newFirePositions; } } diff --git a/src/main/java/model/Firefighter.java b/src/main/java/model/Firefighter.java deleted file mode 100644 index 05920b8bf7e5e858286c479c7a88810335367eae..0000000000000000000000000000000000000000 --- a/src/main/java/model/Firefighter.java +++ /dev/null @@ -1,20 +0,0 @@ -package model; - -import util.Position; - -import java.util.ArrayList; -import java.util.List; - -public class Firefighter extends Element{ - - public Firefighter() { - super(ModelElement.FIREFIGHTER, - new FirefighterBehavior(), - new ArrayList<ModelElement>()); - } - - @Override - public List<Position> Update(List<Position>[] board, List<Position> modifiedList) { - return List.of(); - } -} diff --git a/src/main/java/model/FirefighterBehavior.java b/src/main/java/model/FirefighterBehavior.java index 9d6da9cfd5cbbeb2af402515cb66d167fa5b6e82..966a8049ce949ca98435a665b093f4fd85e13362 100644 --- a/src/main/java/model/FirefighterBehavior.java +++ b/src/main/java/model/FirefighterBehavior.java @@ -1,8 +1,65 @@ package model; -public class FirefighterBehavior implements Behavior { +import util.Position; +import util.TargetStrategy; + +import java.util.ArrayList; +import java.util.List; +import java.util.ListIterator; + +public class FirefighterBehavior extends FFBehavior implements TangibleBehavior<ModelElement>,RemoverBehavior<ModelElement> { + ModelElement element; + List<ModelElement> obstacles=new ArrayList<>(List.of(ModelElement.MOUNTAIN)); + ModelElement removedElement=ModelElement.FIRE; + TargetStrategy targetStrategy=new TargetStrategy(); + + public FirefighterBehavior(ModelElement modelElement) { + super(modelElement); + } + + @Override - public void move() { + public List<Position> getNext(BoardData boardData, List<Position> modifiedPositions) { + List<Position> modifiedPosition = new ArrayList<>(); + List<Position> firefighterPositions = boardData.getPositions().get(element.ordinal()); + List<Position> firePositions = boardData.getPositions().get(getElementToRemove().ordinal()); + List<Position> firefighterNewPositions = new ArrayList<>(); + for (Position firefighterPosition : firefighterPositions) { + Position newFirefighterPosition = + targetStrategy.neighborClosestToFire(firefighterPosition, + firePositions, boardData.getNeighbors()); + firefighterNewPositions.add(newFirefighterPosition); + remove(boardData,newFirefighterPosition); + modifiedPosition.add(firefighterPosition); + modifiedPosition.add(newFirefighterPosition); + List<Position> neighborFirePositions = boardData.getNeighbors().get(newFirefighterPosition).stream() + .filter(firePositions::contains).toList(); + for (Position firePosition : neighborFirePositions) + remove(boardData,firePosition); + modifiedPosition.addAll(neighborFirePositions); + } + firefighterPositions = firefighterNewPositions; + return modifiedPosition; + } + @Override + public Boolean isLegalMove() { + return super.isLegalMove(); + } + + @Override + public List<ModelElement> getObstacles() { + return obstacles; + } + + @Override + public void remove(BoardData boardData,Position p) { + List<Position> firePositions = boardData.getPositions().get(getElementToRemove().ordinal()); + firePositions.remove(p); + } + + @Override + public ModelElement getElementToRemove() { + return removedElement; } } diff --git a/src/main/java/model/FirefighterUpdater.java b/src/main/java/model/FirefighterUpdater.java deleted file mode 100644 index c0de079909ce9a06f2cc56f6e3f862a3c4daf0a4..0000000000000000000000000000000000000000 --- a/src/main/java/model/FirefighterUpdater.java +++ /dev/null @@ -1,4 +0,0 @@ -package model; - -public class FirefighterUpdater implements Updater { -} diff --git a/src/main/java/model/ModelElement.java b/src/main/java/model/ModelElement.java index 759eee5e54c3a39472d8f7defbbbe6a2b67b8f00..6fa3031b0463f8c9f663ed8e8ac3d13eeac4cfdb 100644 --- a/src/main/java/model/ModelElement.java +++ b/src/main/java/model/ModelElement.java @@ -1,5 +1,31 @@ package model; +import java.lang.reflect.InvocationTargetException; + public enum ModelElement { - FIREFIGHTER, FIRE + FIREFIGHTER(StandardFirefighter.class), + FIRE(Fire.class), + MOUNTAIN(Mountain.class); + + public final Class<?> c; + ModelElement(Class<?> c) { + this.c=c; + System.out.println(c); + } + public Element instanciate(){ + Object o=null; + try { + o = c.getDeclaredConstructor().newInstance(); + o = c.cast(o); + } catch (InstantiationException e) { + throw new RuntimeException(e); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } catch (InvocationTargetException e) { + throw new RuntimeException(e); + } catch (NoSuchMethodException e) { + throw new RuntimeException(e); + } + return (Element) o; + } } diff --git a/src/main/java/model/Mountain.java b/src/main/java/model/Mountain.java new file mode 100644 index 0000000000000000000000000000000000000000..c3baafaa6da9d9f1ae30c853edb82f071a4eccbe --- /dev/null +++ b/src/main/java/model/Mountain.java @@ -0,0 +1,18 @@ +package model; + +import util.Position; + +import java.util.List; + +public class Mountain extends Element{ + + public Mountain() { + super(ModelElement.MOUNTAIN, + new NoBehavior(ModelElement.MOUNTAIN)); + } + + @Override + public List<Position> Update(BoardData boardData, List<Position> modifPositions) { + return modifPositions; + } +} diff --git a/src/main/java/model/NoBehavior.java b/src/main/java/model/NoBehavior.java new file mode 100644 index 0000000000000000000000000000000000000000..025014a74a8de024a1c01e9bead71fb264effed5 --- /dev/null +++ b/src/main/java/model/NoBehavior.java @@ -0,0 +1,19 @@ +package model; + +import util.Position; + +import java.util.List; + +public class NoBehavior extends FFBehavior { + + + public NoBehavior(ModelElement element) { + super(element); + } + + @Override + public List<Position> getNext(BoardData boardData, List<Position> positions) { + return positions; + } + +} diff --git a/src/main/java/model/RemoverBehavior.java b/src/main/java/model/RemoverBehavior.java new file mode 100644 index 0000000000000000000000000000000000000000..bb5b87fd3ba270a185a49ed9b0fdbab9b78c9415 --- /dev/null +++ b/src/main/java/model/RemoverBehavior.java @@ -0,0 +1,10 @@ +package model; + +import util.Position; + +import java.util.List; + +public interface RemoverBehavior<E> extends Behavior { + public void remove(BoardData boardData,Position p); + public E getElementToRemove(); +} diff --git a/src/main/java/model/StandardFirefighter.java b/src/main/java/model/StandardFirefighter.java new file mode 100644 index 0000000000000000000000000000000000000000..f60f5abe8265f82b97bcd75ac18d37b1abd6ea6b --- /dev/null +++ b/src/main/java/model/StandardFirefighter.java @@ -0,0 +1,53 @@ +package model; + +import util.Position; +import util.TargetStrategy; + +import java.util.ArrayList; +import java.util.List; + +public class StandardFirefighter extends Element { + + private TargetStrategy targetStrategy=new TargetStrategy(); + + public StandardFirefighter() { + super(ModelElement.FIREFIGHTER, + new FirefighterBehavior(ModelElement.FIREFIGHTER)); + } + + @Override + public List<Position> Update(BoardData boardData, List<Position> modifiedPositions) { + /* + List<Position> firefighterPositions = boardData.getPositions().get(ModelElement.FIREFIGHTER.ordinal()); + List<Position> firePositions = boardData.getPositions().get(ModelElement.FIRE.ordinal()); + modifiedList =behavior.getNext(boardData,modifiedList); + firePositions.removeAll(modifiedList); + firefighterPositions.removeAll(modifiedList); + firePositions.addAll(modifiedList); + return modifiedList;*/ + List<Position> firefighterPositions = boardData.getPositions().get(type.ordinal()); + List<Position> firePositions = boardData.getPositions().get(ModelElement.FIRE.ordinal()); + List<Position> firefighterNewPositions = new ArrayList<>(); + for (Position firefighterPosition : firefighterPositions) { + Position newFirefighterPosition = + targetStrategy.neighborClosestToFire(firefighterPosition, + firePositions, boardData.getNeighbors()); + firefighterNewPositions.add(newFirefighterPosition); + remove(boardData,newFirefighterPosition); + modifiedPositions.add(firefighterPosition); + modifiedPositions.add(newFirefighterPosition); + List<Position> neighborFirePositions = boardData.getNeighbors().get(newFirefighterPosition).stream() + .filter(firePositions::contains).toList(); + for (Position firePosition : neighborFirePositions) + remove(boardData,firePosition); + modifiedPositions.addAll(neighborFirePositions); + } + firefighterPositions = firefighterNewPositions; + return modifiedPositions; + } + + public void remove(BoardData boardData,Position p) { + List<Position> firePositions = boardData.getPositions().get(ModelElement.FIRE.ordinal()); + firePositions.remove(p); + } +} diff --git a/src/main/java/model/TangibleBehavior.java b/src/main/java/model/TangibleBehavior.java new file mode 100644 index 0000000000000000000000000000000000000000..7abcfbf0906602690c21eb42a045ed7ae8d0a5ea --- /dev/null +++ b/src/main/java/model/TangibleBehavior.java @@ -0,0 +1,7 @@ +package model; + +import java.util.List; + +public interface TangibleBehavior<E> extends Behavior { + public List<E> getObstacles(); +} diff --git a/src/main/java/model/Updater.java b/src/main/java/model/Updater.java index dee86843764307564b37479f0811739417b9889a..4243f8b2adaebde2b98cfa9b333b62a1dc7613cd 100644 --- a/src/main/java/model/Updater.java +++ b/src/main/java/model/Updater.java @@ -1,4 +1,11 @@ package model; +import util.Position; + +import java.util.List; + public interface Updater { + + public List<Position> updateAll(BoardData boardData); + } diff --git a/src/main/java/util/TargetStrategy.java b/src/main/java/util/TargetStrategy.java index 583186787d4d8d47173fbe61cc424f2f7ee384c9..7ebc6c160044ec29e49da58250b44b9eca47b8e1 100644 --- a/src/main/java/util/TargetStrategy.java +++ b/src/main/java/util/TargetStrategy.java @@ -1,4 +1,4 @@ -package model; +package util; import util.Position; @@ -12,7 +12,7 @@ public class TargetStrategy { * @param targets positions that are targeted. * @return the position next to the current position that is on the path to the closest target. */ - Position neighborClosestToFire(Position position, Collection<Position> targets, + public Position neighborClosestToFire(Position position, Collection<Position> targets, Map<Position,List<Position>>neighbors) { Set<Position> seen = new HashSet<Position>(); HashMap<Position, Position> firstMove = new HashMap<Position, Position>(); diff --git a/src/main/java/view/ViewElement.java b/src/main/java/view/ViewElement.java index ffb76112e1af543df5af41fa906082ef11be9967..d379d8029f87dc1c9a409f24f5f49092b9c146c7 100644 --- a/src/main/java/view/ViewElement.java +++ b/src/main/java/view/ViewElement.java @@ -3,7 +3,7 @@ package view; import javafx.scene.paint.Color; public enum ViewElement { - FIREFIGHTER(Color.BLUE), FIRE(Color.RED), EMPTY(Color.WHITE); + FIREFIGHTER(Color.BLUE), FIRE(Color.RED),MOUNTAIN(Color.BROWN) , EMPTY(Color.WHITE); final Color color; ViewElement(Color color) { this.color = color; diff --git a/src/test/java/model/FirefighterBoardTest.java b/src/test/java/model/FFBoardTest.java similarity index 71% rename from src/test/java/model/FirefighterBoardTest.java rename to src/test/java/model/FFBoardTest.java index 25cc8dbca8acea698879df68a5006a179f281ecc..ab86f9297ac43dc2c76b22dd81528acd13b47a4a 100644 --- a/src/test/java/model/FirefighterBoardTest.java +++ b/src/test/java/model/FFBoardTest.java @@ -7,20 +7,20 @@ import java.util.List; import static org.assertj.core.api.Assertions.*; -public class FirefighterBoardTest { +public class FFBoardTest { @Test void testColumnCount(){ - Board<List<ModelElement>> board = new FirefighterBoard(20, 10, 1, 3); + Board<List<ModelElement>> board = new FFBoard(20, 10, 1, 3); assertThat(board.columnCount()).isEqualTo(20); } @Test void testRowCount(){ - Board<List<ModelElement>> board = new FirefighterBoard(20, 10, 1, 3); + Board<List<ModelElement>> board = new FFBoard(20, 10, 1, 3); assertThat(board.rowCount()).isEqualTo(10); } @Test void testStepNumber(){ - Board<List<ModelElement>> board = new FirefighterBoard(20, 10, 1, 3); + Board<List<ModelElement>> board = new FFBoard(20, 10, 1, 3); for(int index = 0; index < 10; index++){ assertThat(board.stepNumber()).isEqualTo(index); board.updateToNextGeneration(); @@ -29,7 +29,7 @@ public class FirefighterBoardTest { } @Test void testGetState_afterSet(){ - Board<List<ModelElement>> board = new FirefighterBoard(20, 10, 0, 0); + Board<List<ModelElement>> board = new FFBoard(20, 10, 0, 0); Position position = new Position(1,2); assertThat(board.getState(position)).isEmpty(); board.setState(List.of(ModelElement.FIRE), position); diff --git a/src/test/java/view/FirefighterGridTest.java b/src/test/java/view/StandardFirefighterGridTest.java similarity index 91% rename from src/test/java/view/FirefighterGridTest.java rename to src/test/java/view/StandardFirefighterGridTest.java index 4b45ebdca3b936b42c2b322b1294488341d180bb..3f3011ecda6ec793597e587f10321414364875d4 100644 --- a/src/test/java/view/FirefighterGridTest.java +++ b/src/test/java/view/StandardFirefighterGridTest.java @@ -4,7 +4,7 @@ import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; -public class FirefighterGridTest { +public class StandardFirefighterGridTest { @Test void testColumnCount(){ Grid<ViewElement> grid = new FirefighterGrid();