Compare commits

...

24 Commits

Author SHA1 Message Date
3629584d14 Beispiele überarbeitet 2024-07-07 02:24:27 +02:00
3c74497254 Merge branch 'main' of https://gitea.hb.dhbw-stuttgart.de/i23024/ProjektGraph
# Conflicts:
#	.idea/workspace.xml
2024-07-07 00:05:03 +02:00
245fa45606 Stable Version 4.0 2024-07-06 21:28:34 +02:00
4e6a9902bb small fix 2024-07-06 21:22:54 +02:00
ebd1173cbc Tests with marking of Edges and Vertexes
Adding Visualisation of Edge weight
and Vertex name
fixed AStar
2024-07-06 20:43:33 +02:00
cfcb6d4d40 Stable Version 3.0
3 Beispiele hinzugefügt
2024-07-06 01:34:51 +02:00
79198f4f4a Fixed start stop Color Bug 2024-07-06 00:51:44 +02:00
7180d7951a Merge branch 'main' of https://gitea.hb.dhbw-stuttgart.de/i23024/ProjektGraph
# Conflicts:
#	.idea/workspace.xml
2024-07-06 00:30:53 +02:00
b2c8b4f54f OurApplication etwas sortiert und log zuweisung geändert
fix von Färbung
2024-07-05 17:06:51 +02:00
cmerkens
017bbe9307 Stable Version 3.0 2024-07-05 15:14:53 +02:00
cmerkens
42e9ca5ec8 lol 2024-07-05 15:12:42 +02:00
e07edf8b2b Beispiel1 hinzugefügt 2024-07-05 15:08:33 +02:00
cmerkens
e19a031a16 Stable Version 3.0 2024-07-05 14:20:39 +02:00
04d5175ab0 Added step to Algorithm to better display start and end vertex 2024-07-05 14:00:35 +02:00
bed270e7d2 Stable Version with finished visualisation 2024-07-04 21:18:57 +02:00
58ed89d78c Adding AStar Algorithm 2024-07-03 23:32:53 +02:00
cmerkens
26bd4bbb3a Merge branch 'main' of https://gitea.hb.dhbw-stuttgart.de/i23024/ProjektGraph 2024-07-03 20:33:19 +02:00
cmerkens
e76564e204 Merge branch 'Versuch_Christian' 2024-07-03 20:19:26 +02:00
cmerkens
0904358705 Reset main
Revert "Für Christian"

This reverts commit 213638ad16.

Revert "Visualisation progress"

This reverts commit 12dbadf5e1.

Revert "OurApplication test"This reverts commit 6b0caa1a5e.

Revert "Visualisation tests"

This reverts commit cf63dddf51.
2024-07-03 20:18:47 +02:00
6036220c6a Visualisation progress reset 2024-07-02 17:51:22 +02:00
213638ad16 Für Christian 2024-07-01 20:10:25 +02:00
12dbadf5e1 Visualisation progress 2024-07-01 17:08:11 +02:00
6b0caa1a5e OurApplication test 2024-06-27 15:05:22 +02:00
cf63dddf51 Visualisation tests 2024-06-27 11:07:46 +02:00
85 changed files with 1218 additions and 86 deletions

1
.gitignore vendored
View File

@@ -1 +1,2 @@
/out/
/.idea/

79
.idea/workspace.xml generated
View File

@@ -4,14 +4,25 @@
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="70f8ea87-9ffc-471a-8059-ebbfc323adcc" name="Changes" comment="Stable Version 3.0" />
<list default="true" id="70f8ea87-9ffc-471a-8059-ebbfc323adcc" name="Changes" comment="small fix">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/OurApplication/OurApplication.java" beforeDir="false" afterPath="$PROJECT_DIR$/OurApplication/OurApplication.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/graph/ExampleGraphs.java" beforeDir="false" afterPath="$PROJECT_DIR$/graph/ExampleGraphs.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/ProjektGraph/graph/ExampleGraphs.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/ProjektGraph/graph/ExampleGraphs.class" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="Git.Settings">
<option name="RECENT_BRANCH_BY_REPOSITORY">
<map>
<entry key="$PROJECT_DIR$" value="ebd1173cbc514ede7aa65ba6be90702c92e0e8b4" />
</map>
</option>
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
<option name="RESET_MODE" value="HARD" />
</component>
<component name="ProjectColorInfo">{
&quot;associatedIndex&quot;: 2
@@ -27,7 +38,7 @@
&quot;Application.Display.executor&quot;: &quot;Run&quot;,
&quot;Application.OurApplication.executor&quot;: &quot;Run&quot;,
&quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
&quot;git-widget-placeholder&quot;: &quot;Versuch__Christian&quot;,
&quot;git-widget-placeholder&quot;: &quot;main&quot;,
&quot;kotlin-language-version-configured&quot;: &quot;true&quot;,
&quot;last_opened_file_path&quot;: &quot;C:/Git/ProjektGraphMain&quot;
}
@@ -58,7 +69,63 @@
<option name="project" value="LOCAL" />
<updated>1720028543313</updated>
</task>
<option name="localTasksCounter" value="2" />
<task id="LOCAL-00002" summary="Adding AStar Algorithm">
<option name="closed" value="true" />
<created>1720036191925</created>
<option name="number" value="00002" />
<option name="presentableId" value="LOCAL-00002" />
<option name="project" value="LOCAL" />
<updated>1720036191926</updated>
</task>
<task id="LOCAL-00003" summary="Adding AStar Algorithm">
<option name="closed" value="true" />
<created>1720036227325</created>
<option name="number" value="00003" />
<option name="presentableId" value="LOCAL-00003" />
<option name="project" value="LOCAL" />
<updated>1720036227325</updated>
</task>
<task id="LOCAL-00004" summary="Adding AStar Algorithm">
<option name="closed" value="true" />
<created>1720042374225</created>
<option name="number" value="00004" />
<option name="presentableId" value="LOCAL-00004" />
<option name="project" value="LOCAL" />
<updated>1720042374225</updated>
</task>
<task id="LOCAL-00005" summary="Stable Version with finished visualisation">
<option name="closed" value="true" />
<created>1720120737939</created>
<option name="number" value="00005" />
<option name="presentableId" value="LOCAL-00005" />
<option name="project" value="LOCAL" />
<updated>1720120737940</updated>
</task>
<task id="LOCAL-00006" summary="Stable Version 3.0">
<option name="closed" value="true" />
<created>1720182049903</created>
<option name="number" value="00006" />
<option name="presentableId" value="LOCAL-00006" />
<option name="project" value="LOCAL" />
<updated>1720182049903</updated>
</task>
<task id="LOCAL-00007" summary="Tests with marking of Edges and Vertexes&#10;Adding Visualisation of Edge weight &#10;and Vertex name&#10;fixed AStar">
<option name="closed" value="true" />
<created>1720291413659</created>
<option name="number" value="00007" />
<option name="presentableId" value="LOCAL-00007" />
<option name="project" value="LOCAL" />
<updated>1720291413659</updated>
</task>
<task id="LOCAL-00008" summary="small fix">
<option name="closed" value="true" />
<created>1720293774580</created>
<option name="number" value="00008" />
<option name="presentableId" value="LOCAL-00008" />
<option name="project" value="LOCAL" />
<updated>1720293774580</updated>
</task>
<option name="localTasksCounter" value="9" />
<servers />
</component>
<component name="Vcs.Log.Tabs.Properties">
@@ -73,7 +140,11 @@
</option>
</component>
<component name="VcsManagerConfiguration">
<MESSAGE value="Adding AStar Algorithm" />
<MESSAGE value="Stable Version with finished visualisation" />
<MESSAGE value="Stable Version 3.0" />
<option name="LAST_COMMIT_MESSAGE" value="Stable Version 3.0" />
<MESSAGE value="Tests with marking of Edges and Vertexes&#10;Adding Visualisation of Edge weight &#10;and Vertex name&#10;fixed AStar" />
<MESSAGE value="small fix" />
<option name="LAST_COMMIT_MESSAGE" value="small fix" />
</component>
</project>

117
.idea/workspace.xml.BASE generated Normal file
View File

@@ -0,0 +1,117 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AutoImportSettings">
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="70f8ea87-9ffc-471a-8059-ebbfc323adcc" name="Changes" comment="OurApplication test">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/OurApplication/OurAlgorithm.java" beforeDir="false" afterPath="$PROJECT_DIR$/OurApplication/OurAlgorithm.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/OurApplication/OurDrawArea.java" beforeDir="false" afterPath="$PROJECT_DIR$/OurApplication/OurDrawArea.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/graph/DirectedGraph.java" beforeDir="false" afterPath="$PROJECT_DIR$/graph/DirectedGraph.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/graph/Graph.java" beforeDir="false" afterPath="$PROJECT_DIR$/graph/Graph.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/graph/MarkedVertex.java" beforeDir="false" afterPath="$PROJECT_DIR$/graph/MarkedVertex.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/graph/Vertex.java" beforeDir="false" afterPath="$PROJECT_DIR$/graph/Vertex.java" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="HTML File" />
<option value="Class" />
</list>
</option>
</component>
<component name="Git.Merge.Settings">
<option name="BRANCH" value="VisualisationTests" />
</component>
<component name="Git.Settings">
<option name="RECENT_BRANCH_BY_REPOSITORY">
<map>
<entry key="$PROJECT_DIR$" value="main" />
</map>
</option>
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="ProjectColorInfo">{
&quot;associatedIndex&quot;: 2
}</component>
<component name="ProjectId" id="2hxt4apXjGaBR1xypJAsjIrgc8R" />
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent"><![CDATA[{
"keyToString": {
"Application.OurApplication.executor": "Run",
"DefaultHtmlFileTemplate": "HTML File",
"RunOnceActivity.OpenProjectViewOnStart": "true",
"RunOnceActivity.ShowReadmeOnStart": "true",
"SHARE_PROJECT_CONFIGURATION_FILES": "true",
"git-widget-placeholder": "main",
"kotlin-language-version-configured": "true",
"last_opened_file_path": "C:/Users/jonas/DHBW Dateien/Semester 2/Programmieren 2/Projekt/ProjektGraph/OurApplication",
"settings.editor.selected.configurable": "vcs.Git"
}
}]]></component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="C:\Users\jonas\DHBW Dateien\Semester 2\Programmieren 2\Projekt\ProjektGraph\OurApplication" />
</key>
<key name="MoveFile.RECENT_KEYS">
<recent name="C:\Users\jonas\DHBW Dateien\Semester 2\Programmieren 2\Projekt\ProjektGraph\visualizationElements" />
<recent name="C:\Users\jonas\DHBW Dateien\Semester 2\Programmieren 2\Projekt\ProjektGraph\testApplication" />
<recent name="C:\Users\jonas\DHBW Dateien\Semester 2\Programmieren 2\Projekt\ProjektGraph\logging" />
<recent name="C:\Users\jonas\DHBW Dateien\Semester 2\Programmieren 2\Projekt\ProjektGraph\visualisation" />
</key>
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="70f8ea87-9ffc-471a-8059-ebbfc323adcc" name="Changes" comment="" />
<created>1718547365327</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1718547365327</updated>
</task>
<task id="LOCAL-00001" summary="Visualisation tests">
<option name="closed" value="true" />
<created>1719479266810</created>
<option name="number" value="00001" />
<option name="presentableId" value="LOCAL-00001" />
<option name="project" value="LOCAL" />
<updated>1719479266810</updated>
</task>
<task id="LOCAL-00002" summary="OurApplication test">
<option name="closed" value="true" />
<created>1719493522512</created>
<option name="number" value="00002" />
<option name="presentableId" value="LOCAL-00002" />
<option name="project" value="LOCAL" />
<updated>1719493522512</updated>
</task>
<option name="localTasksCounter" value="3" />
<servers />
</component>
<component name="Vcs.Log.Tabs.Properties">
<option name="TAB_STATES">
<map>
<entry key="MAIN">
<value>
<State />
</value>
</entry>
</map>
</option>
</component>
<component name="VcsManagerConfiguration">
<MESSAGE value="Visualisation tests" />
<MESSAGE value="OurApplication test" />
<option name="LAST_COMMIT_MESSAGE" value="OurApplication test" />
</component>
</project>

79
.idea/workspace.xml.LOCAL generated Normal file
View File

@@ -0,0 +1,79 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AutoImportSettings">
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="70f8ea87-9ffc-471a-8059-ebbfc323adcc" name="Changes" comment="Stable Version 3.0" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="ProjectColorInfo">{
&quot;associatedIndex&quot;: 2
}</component>
<component name="ProjectId" id="2hxt4apXjGaBR1xypJAsjIrgc8R" />
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">{
&quot;keyToString&quot;: {
&quot;Application.Display.executor&quot;: &quot;Run&quot;,
&quot;Application.OurApplication.executor&quot;: &quot;Run&quot;,
&quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
&quot;git-widget-placeholder&quot;: &quot;Versuch__Christian&quot;,
&quot;kotlin-language-version-configured&quot;: &quot;true&quot;,
&quot;last_opened_file_path&quot;: &quot;C:/Git/ProjektGraphMain&quot;
}
}</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="C:\Git\ProjektGraph" />
</key>
<key name="CopyClassDialog.RECENTS_KEY">
<recent name="logging" />
<recent name="visualisation" />
</key>
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="70f8ea87-9ffc-471a-8059-ebbfc323adcc" name="Changes" comment="" />
<created>1718547365327</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1718547365327</updated>
</task>
<task id="LOCAL-00001" summary="Stable Version 3.0">
<option name="closed" value="true" />
<created>1720028543313</created>
<option name="number" value="00001" />
<option name="presentableId" value="LOCAL-00001" />
<option name="project" value="LOCAL" />
<updated>1720028543313</updated>
</task>
<option name="localTasksCounter" value="2" />
<servers />
</component>
<component name="Vcs.Log.Tabs.Properties">
<option name="TAB_STATES">
<map>
<entry key="MAIN">
<value>
<State />
</value>
</entry>
</map>
</option>
</component>
<component name="VcsManagerConfiguration">
<MESSAGE value="Stable Version 3.0" />
<option name="LAST_COMMIT_MESSAGE" value="Stable Version 3.0" />
</component>
</project>

114
.idea/workspace.xml.REMOTE generated Normal file
View File

@@ -0,0 +1,114 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AutoImportSettings">
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="70f8ea87-9ffc-471a-8059-ebbfc323adcc" name="Changes" comment="OurApplication test">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/OurApplication/OurDrawArea.java" beforeDir="false" afterPath="$PROJECT_DIR$/OurApplication/OurDrawArea.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/graph/MarkedVertex.java" beforeDir="false" afterPath="$PROJECT_DIR$/graph/MarkedVertex.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/graph/Vertex.java" beforeDir="false" afterPath="$PROJECT_DIR$/graph/Vertex.java" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="HTML File" />
<option value="Class" />
</list>
</option>
</component>
<component name="Git.Merge.Settings">
<option name="BRANCH" value="VisualisationTests" />
</component>
<component name="Git.Settings">
<option name="RECENT_BRANCH_BY_REPOSITORY">
<map>
<entry key="$PROJECT_DIR$" value="main" />
</map>
</option>
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="ProjectColorInfo">{
&quot;associatedIndex&quot;: 2
}</component>
<component name="ProjectId" id="2hxt4apXjGaBR1xypJAsjIrgc8R" />
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">{
&quot;keyToString&quot;: {
&quot;Application.OurApplication.executor&quot;: &quot;Run&quot;,
&quot;DefaultHtmlFileTemplate&quot;: &quot;HTML File&quot;,
&quot;RunOnceActivity.OpenProjectViewOnStart&quot;: &quot;true&quot;,
&quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
&quot;SHARE_PROJECT_CONFIGURATION_FILES&quot;: &quot;true&quot;,
&quot;git-widget-placeholder&quot;: &quot;main&quot;,
&quot;kotlin-language-version-configured&quot;: &quot;true&quot;,
&quot;last_opened_file_path&quot;: &quot;C:/Users/jonas/DHBW Dateien/Semester 2/Programmieren 2/Projekt/ProjektGraph/OurApplication&quot;,
&quot;settings.editor.selected.configurable&quot;: &quot;vcs.Git&quot;
}
}</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="C:\Users\jonas\DHBW Dateien\Semester 2\Programmieren 2\Projekt\ProjektGraph\OurApplication" />
</key>
<key name="MoveFile.RECENT_KEYS">
<recent name="C:\Users\jonas\DHBW Dateien\Semester 2\Programmieren 2\Projekt\ProjektGraph\visualizationElements" />
<recent name="C:\Users\jonas\DHBW Dateien\Semester 2\Programmieren 2\Projekt\ProjektGraph\testApplication" />
<recent name="C:\Users\jonas\DHBW Dateien\Semester 2\Programmieren 2\Projekt\ProjektGraph\logging" />
<recent name="C:\Users\jonas\DHBW Dateien\Semester 2\Programmieren 2\Projekt\ProjektGraph\visualisation" />
</key>
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="70f8ea87-9ffc-471a-8059-ebbfc323adcc" name="Changes" comment="" />
<created>1718547365327</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1718547365327</updated>
</task>
<task id="LOCAL-00001" summary="Visualisation tests">
<option name="closed" value="true" />
<created>1719479266810</created>
<option name="number" value="00001" />
<option name="presentableId" value="LOCAL-00001" />
<option name="project" value="LOCAL" />
<updated>1719479266810</updated>
</task>
<task id="LOCAL-00002" summary="OurApplication test">
<option name="closed" value="true" />
<created>1719493522512</created>
<option name="number" value="00002" />
<option name="presentableId" value="LOCAL-00002" />
<option name="project" value="LOCAL" />
<updated>1719493522512</updated>
</task>
<option name="localTasksCounter" value="3" />
<servers />
</component>
<component name="Vcs.Log.Tabs.Properties">
<option name="TAB_STATES">
<map>
<entry key="MAIN">
<value>
<State />
</value>
</entry>
</map>
</option>
</component>
<component name="VcsManagerConfiguration">
<MESSAGE value="Visualisation tests" />
<MESSAGE value="OurApplication test" />
<option name="LAST_COMMIT_MESSAGE" value="OurApplication test" />
</component>
</project>

100
.idea/workspace.xml.bak generated Normal file
View File

@@ -0,0 +1,100 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AutoImportSettings">
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<<<<<<< HEAD
<list default="true" id="70f8ea87-9ffc-471a-8059-ebbfc323adcc" name="Changes" comment="Stable Version 3.0" />
=======
<list default="true" id="70f8ea87-9ffc-471a-8059-ebbfc323adcc" name="Changes" comment="OurApplication test">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/OurApplication/OurDrawArea.java" beforeDir="false" afterPath="$PROJECT_DIR$/OurApplication/OurDrawArea.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/graph/MarkedVertex.java" beforeDir="false" afterPath="$PROJECT_DIR$/graph/MarkedVertex.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/graph/Vertex.java" beforeDir="false" afterPath="$PROJECT_DIR$/graph/Vertex.java" afterDir="false" />
</list>
>>>>>>> 6036220c6ac166fb6e4e98d0cf9cdb5af020066a
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="ProjectColorInfo">{
&quot;associatedIndex&quot;: 2
}</component>
<component name="ProjectId" id="2hxt4apXjGaBR1xypJAsjIrgc8R" />
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">{
&quot;keyToString&quot;: {
<<<<<<< HEAD
&quot;Application.Display.executor&quot;: &quot;Run&quot;,
&quot;Application.OurApplication.executor&quot;: &quot;Run&quot;,
&quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
&quot;git-widget-placeholder&quot;: &quot;Versuch__Christian&quot;,
&quot;kotlin-language-version-configured&quot;: &quot;true&quot;,
&quot;last_opened_file_path&quot;: &quot;C:/Git/ProjektGraphMain&quot;
=======
&quot;Application.OurApplication.executor&quot;: &quot;Run&quot;,
&quot;DefaultHtmlFileTemplate&quot;: &quot;HTML File&quot;,
&quot;RunOnceActivity.OpenProjectViewOnStart&quot;: &quot;true&quot;,
&quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
&quot;SHARE_PROJECT_CONFIGURATION_FILES&quot;: &quot;true&quot;,
&quot;git-widget-placeholder&quot;: &quot;main&quot;,
&quot;kotlin-language-version-configured&quot;: &quot;true&quot;,
&quot;last_opened_file_path&quot;: &quot;C:/Users/jonas/DHBW Dateien/Semester 2/Programmieren 2/Projekt/ProjektGraph/OurApplication&quot;,
&quot;settings.editor.selected.configurable&quot;: &quot;vcs.Git&quot;
>>>>>>> 6036220c6ac166fb6e4e98d0cf9cdb5af020066a
}
}</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="C:\Git\ProjektGraph" />
</key>
<key name="CopyClassDialog.RECENTS_KEY">
<recent name="logging" />
<recent name="visualisation" />
</key>
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="70f8ea87-9ffc-471a-8059-ebbfc323adcc" name="Changes" comment="" />
<created>1718547365327</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1718547365327</updated>
</task>
<task id="LOCAL-00001" summary="Stable Version 3.0">
<option name="closed" value="true" />
<created>1720028543313</created>
<option name="number" value="00001" />
<option name="presentableId" value="LOCAL-00001" />
<option name="project" value="LOCAL" />
<updated>1720028543313</updated>
</task>
<option name="localTasksCounter" value="2" />
<servers />
</component>
<component name="Vcs.Log.Tabs.Properties">
<option name="TAB_STATES">
<map>
<entry key="MAIN">
<value>
<State />
</value>
</entry>
</map>
</option>
</component>
<component name="VcsManagerConfiguration">
<MESSAGE value="Stable Version 3.0" />
<option name="LAST_COMMIT_MESSAGE" value="Stable Version 3.0" />
</component>
</project>

View File

@@ -40,15 +40,29 @@ public class OurApplication {
*/
public static void main(String[]args){
LogElementList<OurLogElement>logList = new LogElementList<OurLogElement>();
Random random = new Random();
DirectedGraph<VertexMarking, EdgeMarking> myGraph = new DirectedGraph<>();
ExampleGraphs temp = new ExampleGraphs();
myGraph = temp.example1();
System.out.println(myGraph.toString());
OurParameterArea parameterArea = new OurParameterArea();
OurDrawArea drawArea = new OurDrawArea(logList,"GraphVisualization");
OurTextArea textArea = new OurTextArea(logList);
OurDrawArea drawArea = new OurDrawArea(myGraph.getLogList(),"GraphVisualization");
OurTextArea textArea = new OurTextArea(myGraph.getLogList());
OurAlgorithm algorithm = new OurAlgorithm(parameterArea);
OurLegendArea legendArea = new OurLegendArea();
HybridWindow<OurDrawArea, OurTextArea, OurParameterArea, OurAlgorithm, OurLogElement, OurLegendArea> applet = new HybridWindow<OurDrawArea, OurTextArea, OurParameterArea, OurAlgorithm, OurLogElement, OurLegendArea>(drawArea, textArea, parameterArea, algorithm, logList, legendArea);
HybridWindow<OurDrawArea, OurTextArea, OurParameterArea, OurAlgorithm, OurLogElement, OurLegendArea> applet = new HybridWindow<OurDrawArea, OurTextArea, OurParameterArea, OurAlgorithm, OurLogElement, OurLegendArea>(drawArea, textArea, parameterArea, algorithm, myGraph.getLogList(), legendArea);
drawArea.setCurrentGraph(myGraph.getScreenGraph());
algorithm.setCurrentGraph(myGraph);
JFrame frame = new JFrame("Visualise");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(applet);
@@ -59,28 +73,22 @@ public class OurApplication {
frame.setVisible(true);
Random random = new Random();
DirectedGraph<VertexMarking, EdgeMarking> myGraph = new DirectedGraph<>();
for (int i = 0; i < 10; i++) {
/*for (int i = 0; i < 10; i++) {
myGraph.addVertex(new MarkedVertex<>(random.nextInt(1, 10)*40, random.nextInt(1, 10)*40, Integer.toString(i), null, Color.BLACK));
}
for (MarkedVertex<VertexMarking> i: myGraph.getAllVertexes()) {
myGraph.addEdge(new MarkedEdge<>("a", i, myGraph.getAllVertexes().get(random.nextInt(myGraph.getAllVertexes().size())), null, random.nextInt(1, 10)));
}
/*
for (MarkedVertex<VertexMarking> i: myGraph.getAllVertexes()) {
myGraph.addEdge(new MarkedEdge<>("a", i, myGraph.getAllVertexes().get(random.nextInt(myGraph.getAllVertexes().size())), null, random.nextInt(1, 10)));
}
*/
System.out.println(myGraph.toString());
drawArea.setCurrentGraph(myGraph);
algorithm.setCurrentGraph(myGraph);
}

View File

@@ -1,14 +1,11 @@
package OurApplication;
import graph.*;
import graph.Graph;
import logging.LogElementList;
import visualisation.DrawArea;
import visualizationElements.*;
import visualizationElements.Edge;
import java.awt.Graphics;
import java.awt.*;
import java.util.Random;
import java.util.Vector;
/**
* This class provides an example for using visualization.DrawArea.
@@ -21,7 +18,7 @@ public class OurDrawArea extends DrawArea{
private static final long serialVersionUID = 1L;
private graph.Graph<VertexMarking, EdgeMarking> currentGraph;
private visualizationElements.Graph currentGraph;
/**
@@ -41,7 +38,7 @@ public class OurDrawArea extends DrawArea{
}
public void setCurrentGraph(Graph<VertexMarking, EdgeMarking> graph) {
public void setCurrentGraph(visualizationElements.Graph graph) {
this.currentGraph = graph;
}
@@ -51,26 +48,12 @@ public class OurDrawArea extends DrawArea{
public void draw(Graphics g) {
this.currentGraph.getScreenGraph().draw(g);
OurLogElement logElement = (OurLogElement) logList.get();
if (logElement.getVertex() != null) {
if (logElement.getVertex().getColor() == Color.BLACK) {
logElement.getVertex().setColor(Color.YELLOW);
} else if (logElement.getVertex().getColor() == Color.YELLOW) {
logElement.getVertex().setColor(Color.BLUE);
}
} else {
if (logElement.getEdge().getColor() == Color.BLACK) {
logElement.getEdge().setColor(Color.YELLOW);
} else if (logElement.getEdge().getColor() == Color.YELLOW) {
logElement.getEdge().setColor(Color.BLUE);
}
logElement.getGraph().draw(g);
for(Edge screenEdge : currentGraph.getEdges()){
g.drawString(screenEdge.getMarking(), (screenEdge.getSource().getXpos() + screenEdge.getDestination().getXpos())/2, (screenEdge.getSource().getYpos() + screenEdge.getDestination().getYpos())/2);
}
logElement.getVertex().draw(g);
}
}

View File

@@ -22,6 +22,7 @@ public class OurLogElement extends LogElement{
protected long value;
protected Vertex vertex;
protected Edge edge;
protected visualizationElements.Graph ourGraph;
/**
* Standard constructor.
@@ -53,6 +54,14 @@ public class OurLogElement extends LogElement{
this.value = value;
this.edge = e;
}
public OurLogElement(int step, String description, long value, visualizationElements.Graph ourGraph ){
this.step = step;
this.description = description;
this.value = value;
this.ourGraph = ourGraph;
}
/**
* Returns the log element's sum up value.
@@ -71,4 +80,9 @@ public class OurLogElement extends LogElement{
public Vertex getVertex() {
return this.vertex;
}
public visualizationElements.Graph getGraph() {
return this.ourGraph;
}
}

View File

@@ -1,13 +1,12 @@
package graph;
import OurApplication.OurAlgorithm;
import OurApplication.OurLogElement;
import logging.LogElementList;
import visualizationElements.Edge;
import visualizationElements.EdgeStyle;
import visualizationElements.Vertex;
import java.awt.*;
import java.awt.Color;
import java.util.HashMap;
import java.util.Objects;
import java.util.PriorityQueue;
@@ -43,6 +42,23 @@ public class DirectedGraph<T extends VertexMarking, U extends EdgeMarking> exten
return this.screenGraph;
}
public visualizationElements.Graph getScreenGraphCopy() {
visualizationElements.Graph graphCopy = new visualizationElements.Graph(new Vector<Vertex>(), new Vector<Edge>(), true, EdgeStyle.Direct);
Vector<visualizationElements.Vertex> copiedVertexes = new Vector<>();
Vector<visualizationElements.Edge> copiedEdges = new Vector<>();
for (visualizationElements.Vertex vertexCopy : this.screenGraph.getVertexes()) {
visualizationElements.Vertex newCopiedVertex = new visualizationElements.Vertex(vertexCopy.getXpos(), vertexCopy.getYpos(), vertexCopy.getMarking(), vertexCopy.getColor());
copiedVertexes.add(newCopiedVertex);
graphCopy.setVertexes(copiedVertexes);
}
for (visualizationElements.Edge edgeCopy : this.screenGraph.getEdges()) {
visualizationElements.Edge newCopiedEdge = new visualizationElements.Edge(edgeCopy.getSource(), edgeCopy.getDestination(), edgeCopy.getMarking(), edgeCopy.getColor());
copiedEdges.add(newCopiedEdge);
graphCopy.setEdges(copiedEdges);
}
return graphCopy;
}
public LogElementList<OurLogElement> getLogList() {
return this.logList;
@@ -212,7 +228,11 @@ public class DirectedGraph<T extends VertexMarking, U extends EdgeMarking> exten
int dist = 0;
// Zähler für LogList
int step = 0;
visualizationElements.Graph display;
// Färben der Start und Ziel Knoten für Visualisierung + hinzufügen zur LogList
n1.getScreenVertex().setColor(Color.RED);
n2.getScreenVertex().setColor(Color.RED);
this.logList.add(new OurLogElement(step, "Step: " + step, 0, this.getScreenGraphCopy()));
while (!queue.isEmpty()) {
// Den nächsten Knoten, der am wenigsten kostet, besuchen
@@ -224,7 +244,8 @@ public class DirectedGraph<T extends VertexMarking, U extends EdgeMarking> exten
// Logging
System.out.println("Visit " + nextVertex.getElement().getName());
this.logList.add(new OurLogElement(step, "Step: " + step, 0, nextVertex.getElement().getScreenVertex()));
nextVertex.getElement().getScreenVertex().setColor(Color.BLUE);
this.logList.add(new OurLogElement(step, "Step: " + step, 0, this.getScreenGraphCopy()));
// Gehe von diesem Knoten aus alle erreichbaren Knoten durch
@@ -250,15 +271,121 @@ public class DirectedGraph<T extends VertexMarking, U extends EdgeMarking> exten
// Logging
System.out.println("Add " + i.getName() + " with " + dist + " weight to queue.");
this.logList.add(new OurLogElement(step, "Step: " + step, 0, nextVertex.getElement().getScreenVertex()));
i.getScreenVertex().setColor(Color.YELLOW);
this.logList.add(new OurLogElement(step, "Step: " + step, 0, this.getScreenGraphCopy()));
// Nehme nächsten Knoten in die Queue auf
queue.add(new WrapperElement<>(i, dist));
}
}
//zurücksetzten der Färbungen
this.clearScreenGraphColor();
System.out.println("Done");
// Gibt Distanz zu gefragtem Knoten zurück
return distance.get(n2);
}
public int getShortestPathAStar(MarkedVertex<T> n1, MarkedVertex<T> n2) {
// Erstellt Hashmap um Distanz von Startnoten zu jedem Knoten auf dem Graph zu tracken
// Erstellt Hashmap um zu tracken welche Knoten schon besucht wurden
// Initialisierung aller Distanzen auf UNENDLICH (= -1)
// Initialisierung, dass kein Knoten besucht wurde
HashMap<MarkedVertex<T>, Integer> distance = new HashMap<>();
HashMap<MarkedVertex<T>, Boolean> visited = new HashMap<>();
for (MarkedVertex<T> i: this.getAllVertexes()) {
distance.put(i, -1);
visited.put(i, false);
}
// Erstelle Schlange wo die nächsten Verbindungen drin sind
PriorityQueue<WrapperElement<T>> queue = new PriorityQueue<>(new WrapperComparator<T>());
// Distanz zu Startknoten auf 0
// Weg zu Startknoten in die Schlange aufnehmen
distance.put(n1, 0);
queue.add(new WrapperElement<>(n1, 0));
// Variable, die Distanz zwischen aktuellem Knoten und Nachfolger speichert
int dist = 0;
// Variable, die Distanz zwischen dem potenziell nächsten Knoten und dem Zielknoten speichert
int airDist = 0;
// Variable, die Distanz zwischen dem aktuellen Knoten bis zum Endknoten speichert
int distToFinish = 0;
// Zähler für LogList
int step = 0;
// Färben der Start und Ziel Knoten für Visualisierung + hinzufügen zur LogList
n1.getScreenVertex().setColor(Color.RED);
n2.getScreenVertex().setColor(Color.RED);
this.logList.add(new OurLogElement(step, "Step: " + step, 0, this.getScreenGraphCopy()));
while (!queue.isEmpty()) {
// Den nächsten Knoten, der am wenigsten kostet, besuchen
WrapperElement<T> nextVertex = queue.poll();
// Knoten als besucht makieren
visited.put(nextVertex.getElement(), true);
// Logging
System.out.println("Visit " + nextVertex.getElement().getName());
nextVertex.getElement().getScreenVertex().setColor(Color.BLUE);
this.logList.add(new OurLogElement(step, "Step: " + step, 0, this.getScreenGraphCopy()));
// Gehe von diesem Knoten aus alle erreichbaren Knoten durch
for (MarkedVertex<T> i: this.getSuccessors(nextVertex.getElement())) {
// Kante finde, die den jetzigen und nächsten Knoten verbindet
for (MarkedEdge<U> j: this.getAllEdges()) {
if (j.getSource() == nextVertex.getElement() && j.getDestination() == i) {
//Berechnung der Heuristik über die Luftdistanz des nächsten Knoten zum Zielknoten
airDist = (int) Math.sqrt(Math.pow((i.getCords()[0] - n2.getCords()[0]), 2)
+ Math.pow((i.getCords()[1] - n2.getCords()[1]), 2));
// Berechne Distanz zu nächstem Knoten
dist = distance.get(nextVertex.getElement()) + j.getWeighting();
distToFinish = distance.get(nextVertex.getElement()) + j.getWeighting() + airDist;
break;
}
}
// Wenn es schon einen kürzeren Weg zum Knoten gibt, überspringen
if ((distance.get(i) <= dist && distance.get(i) != -1) || visited.get(i)) {
continue;
}
// Aktualisiere Distanz von Start zu nächstem Knoten
distance.put(i, dist);
// Logging
System.out.println("Add " + i.getName() + " with " + dist + " weight to queue.");
i.getScreenVertex().setColor(Color.YELLOW);
this.logList.add(new OurLogElement(step, "Step: " + step, 0, this.getScreenGraphCopy()));
// Nehme nächsten Knoten in die Queue auf
queue.add(new WrapperElement<>(i, distToFinish));
}
}
//zurücksetzten der Färbungen
this.clearScreenGraphColor();
System.out.println("Done");
// Gibt Distanz zu gefragtem Knoten zurück
return distance.get(n2);
}
// Methode für das Zurücksetzten der Knotenfarben
public void clearScreenGraphColor(){
for(visualizationElements.Vertex screenVertexes : this.getScreenGraph().getVertexes()){
screenVertexes.setColor(Color.BLACK);
}
}
}

View File

@@ -1,32 +0,0 @@
package graph;
import java.util.Random;
public class Display {
public static void main(String[] args) {
DirectedGraph<VertexMarking, EdgeMarking> myGraph = new DirectedGraph<>();
for (int i = 0; i < 10; i++) {
myGraph.addVertex(new MarkedVertex<>(String.valueOf(i), null));
}
Random random = new Random();
for (MarkedVertex<VertexMarking> i: myGraph.getAllVertexes()) {
myGraph.addEdge(new MarkedEdge<>("a", i, myGraph.getAllVertexes().get(random.nextInt(myGraph.getAllVertexes().size())), null, random.nextInt(1, 10)));
}
for (MarkedVertex<VertexMarking> i: myGraph.getAllVertexes()) {
myGraph.addEdge(new MarkedEdge<>("a", i, myGraph.getAllVertexes().get(random.nextInt(myGraph.getAllVertexes().size())), null, random.nextInt(1, 10)));
}
System.out.println(myGraph.toString());
MarkedVertex<VertexMarking> start = myGraph.getAllVertexes().get(random.nextInt(myGraph.getAllVertexes().size()));
MarkedVertex<VertexMarking> end = myGraph.getAllVertexes().get(random.nextInt(myGraph.getAllVertexes().size()));
System.out.println(start.getName() + " to " + end.getName());
System.out.println(myGraph.getShortestPathDijkstra(start, end));
}
}

View File

@@ -2,3 +2,18 @@ package graph;
public abstract class EdgeMarking extends Marking{
}
class EdgeWeightMarking extends EdgeMarking{
private int weight;
EdgeWeightMarking(int weight){
this.weight = weight;
}
public void setWeight(int weight){
this.weight=weight;
}
public int getWeight(){
return this.weight;
}
}

236
graph/ExampleGraphs.java Normal file
View File

@@ -0,0 +1,236 @@
package graph;
import java.awt.*;
import java.util.ArrayList;
import java.util.List;
public class ExampleGraphs {
public DirectedGraph<VertexMarking, EdgeMarking> example1() {
/*
* Beispiel 1 zeigt ein Gitter aus Knoten und Kanten, bei dem jeder Knoten mit
* seinen horizontal und vertikal benachbarten Knoten verbunden ist. Alle Kanten
* haben die gleiche Gewichtung. Der Startknoten befindet sich in einer Ecke
* des Gitters und der Zielknoten in der gegenüberliegenden Ecke.
*
* Ziel:
* Demonstrieren, wie der A*-Algorithmus durch gezieltere Suche effizienter ist
* als der Dijkstra-Algorithmus in einem strukturierten Gittergraphen.
*
* Startknoten: A
* Endknoten: Y
*/
DirectedGraph<VertexMarking, EdgeMarking> example1 = new DirectedGraph<>();
int size = 5;
MarkedVertex<VertexMarking>[][] vertices = new MarkedVertex[size][size];
// Knoten erstellen und zum Graph hinzufügen
for (int row = 0; row < size; row++) {
for (int col = 0; col < size; col++) {
String name = String.valueOf((char) ('A' + row * size + col));
vertices[row][col] = new MarkedVertex<>(50 + col * 100, 50 + row * 100, name, null, null);
example1.addVertex(vertices[row][col]);
}
}
// Kanten horizontal und vertikal verbinden
for (int row = 0; row < size; row++) {
for (int col = 0; col < size; col++) {
if (col < size - 1) {
addBidirectionalEdge(example1, vertices[row][col], vertices[row][col + 1], new EdgeWeightMarking(1));
}
if (row < size - 1) {
addBidirectionalEdge(example1, vertices[row][col], vertices[row + 1][col], new EdgeWeightMarking(1));
}
}
}
return example1;
}
private void addBidirectionalEdge(DirectedGraph<VertexMarking, EdgeMarking> graph, MarkedVertex<VertexMarking> from, MarkedVertex<VertexMarking> to, EdgeWeightMarking weight) {
MarkedEdge<EdgeMarking> forwardEdge = new MarkedEdge<>("edge" + from.getName() + "_" + to.getName(), from, to, weight, weight.getWeight());
MarkedEdge<EdgeMarking> backwardEdge = new MarkedEdge<>("edge" + to.getName() + "_" + from.getName(), to, from, weight, weight.getWeight());
graph.addEdge(forwardEdge);
graph.addEdge(backwardEdge);
}
public DirectedGraph<VertexMarking, EdgeMarking> example2() {
DirectedGraph<VertexMarking, EdgeMarking> example2 = new DirectedGraph<>();
/*
* Beispiel 2 zeigt zwei Wege von einem Startknoten zu einem Zielknoten mit unterschiedlichen Eigenschaften:
* Ein Weg (oben) hat wenige Knoten mit Kanten geringer Gewichtung, außer der letzten Kante, die hohe Gewichtung hat.
* Der andere Weg (unten) hat mehr Knoten mit höherer Gewichtung der Kanten. Der Algorithmus sollte zuerst den oberen
* Weg erkunden, bis er die hohe Gewichtung der letzten Kante des unteren Wegs berücksichtigt.
*
* Startknoten: A
* Endknoten: E
*/
MarkedVertex A = new MarkedVertex<>(100, 100, "A", null, null);
MarkedVertex B = new MarkedVertex<>(250, 50, "B", null, null);
MarkedVertex C = new MarkedVertex<>(400, 100, "C", null, null);
MarkedVertex D = new MarkedVertex<>(550, 50, "D", null, null);
MarkedVertex E = new MarkedVertex<>(700, 100, "E", null, null);
MarkedVertex F = new MarkedVertex<>(250, 200, "F", null, null);
MarkedVertex G = new MarkedVertex<>(550, 200, "G", null, null);
example2.addVertex(A);
example2.addVertex(B);
example2.addVertex(C);
example2.addVertex(D);
example2.addVertex(E);
example2.addVertex(F);
example2.addVertex(G);
example2.addEdge(new MarkedEdge<>("AB", A, B, new EdgeWeightMarking(1), 1));
example2.addEdge(new MarkedEdge<>("BC", B, C, new EdgeWeightMarking(1), 1));
example2.addEdge(new MarkedEdge<>("CD", C, D, new EdgeWeightMarking(10), 10));
example2.addEdge(new MarkedEdge<>("DE", D, E, new EdgeWeightMarking(1), 1));
example2.addEdge(new MarkedEdge<>("AF", A, F, new EdgeWeightMarking(5), 5));
example2.addEdge(new MarkedEdge<>("FG", F, G, new EdgeWeightMarking(5), 5));
example2.addEdge(new MarkedEdge<>("GE", G, E, new EdgeWeightMarking(5), 5));
return example2;
}
public DirectedGraph<VertexMarking, EdgeMarking> example3() {
/*
* Beispiel 3 zeigt ein Labyrinth mit vier horizontalen Wegen, die jeweils aus vier Knoten bestehen.
* Jeder Weg führt zum Endpunkt E1, E2, E3 bzw. E4. Ziel ist es zu zeigen, dass die Algorithmen auch
* potenziell falsche Wege erkunden können, bevor sie den richtigen Endpunkt erreichen.
*
* Startknoten: A
* Endknoten: E2
*/
DirectedGraph<VertexMarking, EdgeMarking> example3 = new DirectedGraph<>();
// Startpunkt A in der Mitte der Y-Koordinate
MarkedVertex A = new MarkedVertex<>(100, 250, "A", null, null);
// Erster Weg
MarkedVertex B1 = new MarkedVertex<>(200, 100, "B1", null, null);
MarkedVertex C1 = new MarkedVertex<>(300, 100, "C1", null, null);
MarkedVertex D1 = new MarkedVertex<>(400, 100, "D1", null, null);
MarkedVertex E1 = new MarkedVertex<>(500, 100, "E1", null, null); // Endpunkt des ersten Weges
// Zweiter Weg
MarkedVertex B2 = new MarkedVertex<>(200, 200, "B2", null, null);
MarkedVertex C2 = new MarkedVertex<>(300, 200, "C2", null, null);
MarkedVertex D2 = new MarkedVertex<>(400, 200, "D2", null, null);
MarkedVertex E2 = new MarkedVertex<>(500, 200, "E2", null, null); // Endpunkt des zweiten Weges
// Dritter Weg
MarkedVertex B3 = new MarkedVertex<>(200, 300, "B3", null, null);
MarkedVertex C3 = new MarkedVertex<>(300, 300, "C3", null, null);
MarkedVertex D3 = new MarkedVertex<>(400, 300, "D3", null, null);
MarkedVertex E3 = new MarkedVertex<>(500, 300, "E3", null, null); // Endpunkt des dritten Weges
// Vierter Weg
MarkedVertex B4 = new MarkedVertex<>(200, 400, "B4", null, null);
MarkedVertex C4 = new MarkedVertex<>(300, 400, "C4", null, null);
MarkedVertex D4 = new MarkedVertex<>(400, 400, "D4", null, null);
MarkedVertex E4 = new MarkedVertex<>(500, 400, "E4", null, null); // Endpunkt des vierten Weges
example3.addVertex(A);
example3.addVertex(B1);
example3.addVertex(C1);
example3.addVertex(D1);
example3.addVertex(B2);
example3.addVertex(C2);
example3.addVertex(D2);
example3.addVertex(B3);
example3.addVertex(C3);
example3.addVertex(D3);
example3.addVertex(B4);
example3.addVertex(C4);
example3.addVertex(D4);
example3.addVertex(E1);
example3.addVertex(E2);
example3.addVertex(E3);
example3.addVertex(E4);
example3.addEdge(new MarkedEdge<>("AB1", A, B1, new EdgeWeightMarking(1), 1));
example3.addEdge(new MarkedEdge<>("AB2", A, B2, new EdgeWeightMarking(1), 1));
example3.addEdge(new MarkedEdge<>("AB3", A, B3, new EdgeWeightMarking(1), 1));
example3.addEdge(new MarkedEdge<>("AB4", A, B4, new EdgeWeightMarking(1), 1));
example3.addEdge(new MarkedEdge<>("B1C1", B1, C1, new EdgeWeightMarking(1), 1));
example3.addEdge(new MarkedEdge<>("B2C2", B2, C2, new EdgeWeightMarking(1), 1));
example3.addEdge(new MarkedEdge<>("B3C3", B3, C3, new EdgeWeightMarking(1), 1));
example3.addEdge(new MarkedEdge<>("B4C4", B4, C4, new EdgeWeightMarking(1), 1));
example3.addEdge(new MarkedEdge<>("C1D1", C1, D1, new EdgeWeightMarking(1), 1));
example3.addEdge(new MarkedEdge<>("C2D2", C2, D2, new EdgeWeightMarking(1), 1));
example3.addEdge(new MarkedEdge<>("C3D3", C3, D3, new EdgeWeightMarking(1), 1));
example3.addEdge(new MarkedEdge<>("C4D4", C4, D4, new EdgeWeightMarking(1), 1));
example3.addEdge(new MarkedEdge<>("D1E1", D1, E1, new EdgeWeightMarking(1), 1));
example3.addEdge(new MarkedEdge<>("D2E2", D2, E2, new EdgeWeightMarking(1), 1));
example3.addEdge(new MarkedEdge<>("D3E3", D3, E3, new EdgeWeightMarking(1), 1));
example3.addEdge(new MarkedEdge<>("D4E4", D4, E4, new EdgeWeightMarking(1), 1));
return example3;
}
public DirectedGraph<VertexMarking, EdgeMarking> example4() {
/*
* Beispiel 4 zeigt einen gerichteten Graphen mit deutschen Städten als Knoten und
* zufällig gewichteten Kanten.
*/
DirectedGraph<VertexMarking, EdgeMarking> example4 = new DirectedGraph<>();
// Städte als Knoten
MarkedVertex Berlin = new MarkedVertex<>(100, 100, "Berlin", null, null);
MarkedVertex Hamburg = new MarkedVertex<>(200, 100, "Hamburg", null, null);
MarkedVertex München = new MarkedVertex<>(300, 100, "München", null, null);
MarkedVertex Köln = new MarkedVertex<>(100, 200, "Köln", null, null);
MarkedVertex Frankfurt = new MarkedVertex<>(200, 200, "Frankfurt", null, null);
MarkedVertex Stuttgart = new MarkedVertex<>(300, 200, "Stuttgart", null, null);
MarkedVertex Leipzig = new MarkedVertex<>(100, 300, "Leipzig", null, null);
MarkedVertex Dresden = new MarkedVertex<>(200, 300, "Dresden", null, null);
MarkedVertex Hannover = new MarkedVertex<>(300, 300, "Hannover", null, null);
// Kanten mit zufälligen Gewichtungen
example4.addVertex(Berlin);
example4.addVertex(Hamburg);
example4.addVertex(München);
example4.addVertex(Köln);
example4.addVertex(Frankfurt);
example4.addVertex(Stuttgart);
example4.addVertex(Leipzig);
example4.addVertex(Dresden);
example4.addVertex(Hannover);
example4.addEdge(new MarkedEdge<>("Berlin-Hamburg", Berlin, Hamburg, new EdgeWeightMarking(1), 1));
example4.addEdge(new MarkedEdge<>("Berlin-München", Berlin, München, new EdgeWeightMarking(2), 1));
example4.addEdge(new MarkedEdge<>("Berlin-Köln", Berlin, Köln, new EdgeWeightMarking(3), 1));
example4.addEdge(new MarkedEdge<>("Hamburg-Frankfurt", Hamburg, Frankfurt, new EdgeWeightMarking(2), 1));
example4.addEdge(new MarkedEdge<>("Hamburg-Leipzig", Hamburg, Leipzig, new EdgeWeightMarking(3), 1));
example4.addEdge(new MarkedEdge<>("München-Stuttgart", München, Stuttgart, new EdgeWeightMarking(1), 1));
example4.addEdge(new MarkedEdge<>("München-Dresden", München, Dresden, new EdgeWeightMarking(2), 1));
example4.addEdge(new MarkedEdge<>("Köln-Hannover", Köln, Hannover, new EdgeWeightMarking(3), 1));
example4.addEdge(new MarkedEdge<>("Frankfurt-Stuttgart", Frankfurt, Stuttgart, new EdgeWeightMarking(1), 1));
example4.addEdge(new MarkedEdge<>("Stuttgart-Leipzig", Stuttgart, Leipzig, new EdgeWeightMarking(2), 1));
example4.addEdge(new MarkedEdge<>("Leipzig-Dresden", Leipzig, Dresden, new EdgeWeightMarking(1), 1));
example4.addEdge(new MarkedEdge<>("Dresden-Hannover", Dresden, Hannover, new EdgeWeightMarking(3), 1));
return example4;
}
}

View File

@@ -267,4 +267,5 @@ public abstract class Graph<T extends VertexMarking, U extends EdgeMarking> {
public abstract int getShortestPathDijkstra(MarkedVertex<T> n1, MarkedVertex<T> n2);
public abstract int getShortestPathAStar(MarkedVertex<T> n1, MarkedVertex<T> n2);
}

View File

@@ -24,16 +24,16 @@ public class MarkedEdge<U extends EdgeMarking> extends Edge{
public MarkedEdge(String s, Vertex n1, Vertex n2, U u) {
super(s, n1, n2);
this.marking = u;
this.screenEdge = new visualizationElements.Edge(n1.getScreenVertex(), n2.getScreenVertex(), u.toString());
this.screenEdge = new visualizationElements.Edge(n1.getScreenVertex(), n2.getScreenVertex());
}
// TODO ACHTUNG DEBUG!!!!
public MarkedEdge(String s, Vertex n1, Vertex n2, U u, int w) {
public MarkedEdge(String s, Vertex n1, Vertex n2, U u, int weighting) {
super(s, n1, n2);
this.marking = u;
this.weighting = w;
this.screenEdge = new visualizationElements.Edge(n1.getScreenVertex(), n2.getScreenVertex(), "u.toString()", Color.BLACK);
this.weighting = weighting;
this.screenEdge = new visualizationElements.Edge(n1.getScreenVertex(), n2.getScreenVertex(), Integer.toString(weighting), Color.BLACK);
}

View File

@@ -27,17 +27,17 @@ public class MarkedVertex<T extends VertexMarking> extends Vertex{
public MarkedVertex(String s, T t) {
super(s);
this.marking = t;
this.screenVertex = new visualizationElements.Vertex(0, 0, t.toString());
this.screenVertex = new visualizationElements.Vertex(0, 0);
this.xCord = 0;
this.yCord = 0;
}
// TODO ACHTUNG DEBUG!!!!
public MarkedVertex(int xCord, int yCord, String s, T t, Color color) {
super(s);
public MarkedVertex(int xCord, int yCord, String name, T t, Color color) {
super(name);
this.marking = t;
this.screenVertex = new visualizationElements.Vertex(xCord, yCord, "t.toString()", color);
this.screenVertex = new visualizationElements.Vertex(xCord, yCord, name, color);
this.xCord = xCord;
this.yCord = yCord;
}

View File

@@ -121,5 +121,8 @@ public class UndirectedGraph<T extends VertexMarking, U extends EdgeMarking> ext
public int getShortestPathDijkstra(MarkedVertex<T> n1, MarkedVertex<T> n2) {
return 1;
}
public int getShortestPathAStar(MarkedVertex<T> n1, MarkedVertex<T> n2) {
return 2;
}
}

View File

@@ -2,3 +2,18 @@ package graph;
public abstract class VertexMarking extends Marking {
}
class VertexWeightMarking extends VertexMarking{
private int weight;
VertexWeightMarking(int weight){
this.weight = weight;
}
public void setWeight(int weight){
this.weight=weight;
}
public int getWeight(){
return this.weight;
}
}

View File

@@ -0,0 +1 @@
/out/

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="21" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/ProjektGraph.iml" filepath="$PROJECT_DIR$/.idea/ProjektGraph.iml" />
</modules>
</component>
</project>

View File

@@ -0,0 +1,124 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

View File

@@ -0,0 +1,124 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AutoImportSettings">
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="70f8ea87-9ffc-471a-8059-ebbfc323adcc" name="Changes" comment="Stable Version 3.0">
<change beforePath="$PROJECT_DIR$/graph/DirectedGraph.java" beforeDir="false" afterPath="$PROJECT_DIR$/graph/DirectedGraph.java" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
<option name="RESET_MODE" value="HARD" />
</component>
<component name="ProjectColorInfo">{
&quot;associatedIndex&quot;: 2
}</component>
<component name="ProjectId" id="2hxt4apXjGaBR1xypJAsjIrgc8R" />
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent"><![CDATA[{
"keyToString": {
"Application.Display.executor": "Run",
"Application.OurApplication.executor": "Run",
"RunOnceActivity.ShowReadmeOnStart": "true",
"git-widget-placeholder": "main",
"kotlin-language-version-configured": "true",
"last_opened_file_path": "C:/Git/ProjektGraphMain"
}
}]]></component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="C:\Git\ProjektGraph" />
</key>
<key name="CopyClassDialog.RECENTS_KEY">
<recent name="logging" />
<recent name="visualisation" />
</key>
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="70f8ea87-9ffc-471a-8059-ebbfc323adcc" name="Changes" comment="" />
<created>1718547365327</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1718547365327</updated>
</task>
<task id="LOCAL-00001" summary="Stable Version 3.0">
<option name="closed" value="true" />
<created>1720028543313</created>
<option name="number" value="00001" />
<option name="presentableId" value="LOCAL-00001" />
<option name="project" value="LOCAL" />
<updated>1720028543313</updated>
</task>
<task id="LOCAL-00002" summary="Adding AStar Algorithm">
<option name="closed" value="true" />
<created>1720036191925</created>
<option name="number" value="00002" />
<option name="presentableId" value="LOCAL-00002" />
<option name="project" value="LOCAL" />
<updated>1720036191926</updated>
</task>
<task id="LOCAL-00003" summary="Adding AStar Algorithm">
<option name="closed" value="true" />
<created>1720036227325</created>
<option name="number" value="00003" />
<option name="presentableId" value="LOCAL-00003" />
<option name="project" value="LOCAL" />
<updated>1720036227325</updated>
</task>
<task id="LOCAL-00004" summary="Adding AStar Algorithm">
<option name="closed" value="true" />
<created>1720042374225</created>
<option name="number" value="00004" />
<option name="presentableId" value="LOCAL-00004" />
<option name="project" value="LOCAL" />
<updated>1720042374225</updated>
</task>
<task id="LOCAL-00005" summary="Stable Version with finished visualisation">
<option name="closed" value="true" />
<created>1720120737939</created>
<option name="number" value="00005" />
<option name="presentableId" value="LOCAL-00005" />
<option name="project" value="LOCAL" />
<updated>1720120737940</updated>
</task>
<task id="LOCAL-00006" summary="Stable Version 3.0">
<option name="closed" value="true" />
<created>1720182049903</created>
<option name="number" value="00006" />
<option name="presentableId" value="LOCAL-00006" />
<option name="project" value="LOCAL" />
<updated>1720182049903</updated>
</task>
<option name="localTasksCounter" value="7" />
<servers />
</component>
<component name="Vcs.Log.Tabs.Properties">
<option name="TAB_STATES">
<map>
<entry key="MAIN">
<value>
<State />
</value>
</entry>
</map>
</option>
</component>
<component name="VcsManagerConfiguration">
<MESSAGE value="Adding AStar Algorithm" />
<MESSAGE value="Stable Version with finished visualisation" />
<MESSAGE value="Stable Version 3.0" />
<option name="LAST_COMMIT_MESSAGE" value="Stable Version 3.0" />
</component>
</project>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.