Final Improvements

This commit is contained in:
i23007 2024-07-09 12:39:36 +02:00
parent 2213a4385d
commit c900f07f89
10 changed files with 85 additions and 54 deletions

View File

@ -76,9 +76,9 @@ public class OurAlgorithm extends Algorithm {
info.setContentPane(contentpane); info.setContentPane(contentpane);
JOptionPane.showMessageDialog( JOptionPane.showMessageDialog(
contentpane, contentpane,
"Bitte geben SIe einen gültige Graphen an. Hilfestellung für das Erstellen von Knoten und Kanten:\n" + "Bitte geben Sie einen gültigen Graphen an. Hilfestellung für das Erstellen von Knoten und Kanten:\n" +
"Knoten: Name;X-Coordinate;Y-Coordinate\nKanten: StartKnoten;Endknoten;Gewichtung\n" + "Knoten: Name;X-Coordinate;Y-Coordinate\nKanten: StartKnoten;Endknoten;Gewichtung\n" +
"Hinweis: ein Koten benötigt den Namen 'Startknoten', ein anderer 'Endknoten'\n" + "Hinweis: ein Koten benötigt den Namen 'Start', ein anderer 'Ende'\n" +
"(Festlegen der Start und Endknoten für die Algorithmen)", "(Festlegen der Start und Endknoten für die Algorithmen)",
"Eingabefehler", "Eingabefehler",
JOptionPane.INFORMATION_MESSAGE, JOptionPane.INFORMATION_MESSAGE,

View File

@ -146,19 +146,21 @@ public class OurParameterArea extends ParameterArea {
} }
// Create edges // Create edges
MarkedVertex<VertexMarking> start = null; if(allEdges.length != 1 || !Objects.equals(allEdges[0], "")){
MarkedVertex<VertexMarking> end = null; MarkedVertex<VertexMarking> start = null;
for (String i: allEdges) { MarkedVertex<VertexMarking> end = null;
String[] current = i.split("-"); for (String i: allEdges) {
for (MarkedVertex<VertexMarking> j: newGraph.getAllVertexes()) { String[] current = i.split("-");
if (Objects.equals(j.getName(), current[0])) { for (MarkedVertex<VertexMarking> j: newGraph.getAllVertexes()) {
start = j; if (Objects.equals(j.getName(), current[0])) {
} start = j;
if (Objects.equals(j.getName(), current[1])) { }
end = j; if (Objects.equals(j.getName(), current[1])) {
end = j;
}
} }
newGraph.addEdge(new MarkedEdge<>(i, start, end, new EdgeWeightMarking(Integer.parseInt(current[2]))));
} }
newGraph.addEdge(new MarkedEdge<>(i, start, end, new EdgeWeightMarking(Integer.parseInt(current[2]))));
} }
//Fehlerbehandlung //Fehlerbehandlung
}catch(Throwable e){ }catch(Throwable e){
@ -169,7 +171,7 @@ public class OurParameterArea extends ParameterArea {
contentpane, contentpane,
"Fehler bei der Eingabe des Graphen. Beispieleingabe für Knoten und Kanten:\n" + "Fehler bei der Eingabe des Graphen. Beispieleingabe für Knoten und Kanten:\n" +
"Knoten: Name;X-Coordinate;Y-Coordinate\nKanten: StartKnoten;Endknoten;Gewichtung\n" + "Knoten: Name;X-Coordinate;Y-Coordinate\nKanten: StartKnoten;Endknoten;Gewichtung\n" +
"Hinweis: ein Koten benötigt den Namen 'Startknoten', ein anderer 'Endknoten'\n" + "Hinweis: ein Koten benötigt den Namen 'Start', ein anderer 'Ende'\n" +
"(Festlegen der Start und Endknoten für die Algorithmen)", "(Festlegen der Start und Endknoten für die Algorithmen)",
"Eingabefehler", "Eingabefehler",
JOptionPane.INFORMATION_MESSAGE, JOptionPane.INFORMATION_MESSAGE,

View File

@ -419,19 +419,26 @@ public class DirectedGraph<T extends VertexMarking, U extends EdgeMarking> exten
} }
} }
MarkedVertex<T> colorroute = n2;
// Falls kein Weg gefunden wurde
if (predecessors.get(n2) == null) {
textDescription = "Kein Weg gefunden!";
this.logList.add(new OurLogElement(step, textDescription, 0, this.getScreenGraphCopy()));
}else{
// Falls ein Weg gefunden wurde
while (colorroute != null) {
textDescription = colorroute.getName();
System.out.println(textDescription);
colorroute.getScreenVertex().setColor(Color.green);
this.logList.add(new OurLogElement(step, textDescription, 0, this.getScreenGraphCopy()));
colorroute = predecessors.get(colorroute);
}
}
//zurücksetzten der Färbungen //zurücksetzten der Färbungen
this.clearScreenGraphColor(); this.clearScreenGraphColor();
MarkedVertex<T> colorroute = n2;
while (colorroute != null) {
textDescription = colorroute.getName();
System.out.println(textDescription);
colorroute.getScreenVertex().setColor(Color.green);
this.logList.add(new OurLogElement(step, textDescription, 0, this.getScreenGraphCopy()));
colorroute = predecessors.get(colorroute);
}
System.out.println("Done"); System.out.println("Done");
// Gibt Distanz zu gefragtem Knoten zurück // Gibt Distanz zu gefragtem Knoten zurück
return distance.get(n2); return distance.get(n2);
@ -568,19 +575,26 @@ public class DirectedGraph<T extends VertexMarking, U extends EdgeMarking> exten
} }
} }
MarkedVertex<T> colorroute = n2;
// Falls kein Weg gefunden wurde
if (predecessors.get(n2) == null) {
textDescription = "Kein Weg gefunden!";
this.logList.add(new OurLogElement(step, textDescription, 0, this.getScreenGraphCopy()));
}else{
// Falls ein Weg gefunden wurde
while (colorroute != null) {
textDescription = colorroute.getName();
System.out.println(textDescription);
colorroute.getScreenVertex().setColor(Color.green);
this.logList.add(new OurLogElement(step, textDescription, 0, this.getScreenGraphCopy()));
colorroute = predecessors.get(colorroute);
}
}
//zurücksetzten der Färbungen //zurücksetzten der Färbungen
this.clearScreenGraphColor(); this.clearScreenGraphColor();
MarkedVertex<T> colorroute = n2;
while (colorroute != null) {
textDescription = colorroute.getName();
System.out.println(textDescription);
colorroute.getScreenVertex().setColor(Color.green);
this.logList.add(new OurLogElement(step, textDescription, 0, this.getScreenGraphCopy()));
colorroute = predecessors.get(colorroute);
}
System.out.println("Done"); System.out.println("Done");
// Gibt Distanz zu gefragtem Knoten zurück // Gibt Distanz zu gefragtem Knoten zurück
return distance.get(n2); return distance.get(n2);

View File

@ -324,19 +324,26 @@ public class UndirectedGraph<T extends VertexMarking, U extends EdgeMarking> ext
} }
} }
MarkedVertex<T> colorroute = n2;
// Falls kein Weg gefunden wurde
if (predecessors.get(n2) == null) {
textDescription = "Kein Weg gefunden!";
this.logList.add(new OurLogElement(step, textDescription, 0, this.getScreenGraphCopy()));
}else{
// Falls ein Weg gefunden wurde
while (colorroute != null) {
textDescription = colorroute.getName();
System.out.println(textDescription);
colorroute.getScreenVertex().setColor(Color.green);
this.logList.add(new OurLogElement(step, textDescription, 0, this.getScreenGraphCopy()));
colorroute = predecessors.get(colorroute);
}
}
//zurücksetzten der Färbungen //zurücksetzten der Färbungen
this.clearScreenGraphColor(); this.clearScreenGraphColor();
MarkedVertex<T> colorroute = n2;
while (colorroute != null) {
textDescription = colorroute.getName();
System.out.println(textDescription);
colorroute.getScreenVertex().setColor(Color.green);
this.logList.add(new OurLogElement(step, textDescription, 0, this.getScreenGraphCopy()));
colorroute = predecessors.get(colorroute);
}
System.out.println("Done"); System.out.println("Done");
// Gibt Distanz zu gefragtem Knoten zurück // Gibt Distanz zu gefragtem Knoten zurück
return distance.get(n2); return distance.get(n2);
@ -469,19 +476,26 @@ public class UndirectedGraph<T extends VertexMarking, U extends EdgeMarking> ext
} }
} }
MarkedVertex<T> colorroute = n2;
// Falls kein Weg gefunden wurde
if (predecessors.get(n2) == null) {
textDescription = "Kein Weg gefunden!";
this.logList.add(new OurLogElement(step, textDescription, 0, this.getScreenGraphCopy()));
}else{
// Falls ein Weg gefunden wurde
while (colorroute != null) {
textDescription = colorroute.getName();
System.out.println(textDescription);
colorroute.getScreenVertex().setColor(Color.green);
this.logList.add(new OurLogElement(step, textDescription, 0, this.getScreenGraphCopy()));
colorroute = predecessors.get(colorroute);
}
}
//zurücksetzten der Färbungen //zurücksetzten der Färbungen
this.clearScreenGraphColor(); this.clearScreenGraphColor();
MarkedVertex<T> colorroute = n2;
while (colorroute != null) {
textDescription = colorroute.getName();
System.out.println(textDescription);
colorroute.getScreenVertex().setColor(Color.green);
this.logList.add(new OurLogElement(step, textDescription, 0, this.getScreenGraphCopy()));
colorroute = predecessors.get(colorroute);
}
System.out.println("Done"); System.out.println("Done");
// Gibt Distanz zu gefragtem Knoten zurück // Gibt Distanz zu gefragtem Knoten zurück
return distance.get(n2); return distance.get(n2);

View File

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