From 24a5e51f70167913aac380434e53ee0282e76abc Mon Sep 17 00:00:00 2001 From: Marc Michalsky Date: Mon, 13 Apr 2020 17:45:07 +0200 Subject: [PATCH] weiterentwickelt --- .../frachtfluege/gfn/marc/Ort.class | Bin 2188 -> 4192 bytes .../frachtfluege/gfn/marc/Routen.class | Bin 1727 -> 1727 bytes src/gfn/marc/Frachtfluege.java | 4 +- src/gfn/marc/Routen.java | 88 +++++++++++++++--- 4 files changed, 80 insertions(+), 12 deletions(-) diff --git a/out/production/frachtfluege/gfn/marc/Ort.class b/out/production/frachtfluege/gfn/marc/Ort.class index c3a6ac557d6699c7885865c5f95eeee4751b58bc..83027d2742293cfbf94b000f6c9fec6975e9e6a3 100644 GIT binary patch literal 4192 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 orte = new ArrayList<>(); + static HashMap orteMap = new HashMap<>(); String id; int frachtkapazitaet; double frachtkosten; // EUR/kg @@ -53,6 +52,7 @@ class Ort { this.frachtkapazitaet = frachtkapazitaet; this.frachtkosten = frachtkosten; Ort.orte.add(this); + Ort.orteMap.put(this.id, this); } public void setKnoten(Ort... knotenArray) { @@ -68,23 +68,89 @@ class Ort { void berechneRouten() { HashMap routen = new HashMap<>(); - for (Ort o : orte) { - if (!this.id.equals(o.id)) { - routen.put(this.id.concat(o.id), new String[this.knoten.size()][orte.size()]); + Ort start = this; + for (Ort ziel : orte) { + if (!start.id.equals(ziel.id)) { + routen.put(start.id.concat(ziel.id), new String[orte.size()][orte.size() + 1]); + String[][] tabelle = routen.get(start.id.concat(ziel.id)); + for (int i = 0; i < tabelle.length; i++) { + tabelle[i][0] = start.id; + } - for (int i = 0; i < routen.get(this.id.concat(o.id)).length; i++) { - routen.get(this.id.concat(o.id))[i][0] = this.id; - for (int j = 1; j < routen.get(this.id.concat(o.id))[i].length; j++) { - if (routen.get(this.id.concat(o.id))[i][j].isBlank()) { - - // TODO: Hier weitermachen! + int i = 0; + int j = 1; + for (Ort startKnoten : start.knoten) { + if (startKnoten.id.equals(ziel.id)) { + tabelle[i][j] = ziel.id; + i++; + } else { + if (startKnoten.knoten.contains(ziel)) { + tabelle[i][j] = startKnoten.id; + tabelle[i][j + 1] = ziel.id; + i++; + } else { + for (Ort folgeKnoten1 : startKnoten.knoten) { + if (folgeKnoten1.knoten.contains(ziel)) { + if (folgeKnoten1.id.equals(start.id)) continue; + tabelle[i][j] = startKnoten.id; + tabelle[i][j + 1] = folgeKnoten1.id; + tabelle[i][j + 2] = ziel.id; + i++; + } else { + for (Ort folgeKnoten2 : folgeKnoten1.knoten) { + if (folgeKnoten2.knoten.contains(ziel)) { + if (folgeKnoten2.id.equals(folgeKnoten1.id) || + folgeKnoten2.id.equals(startKnoten.id) || + folgeKnoten2.id.equals(start.id) || + folgeKnoten1.id.equals(startKnoten.id) || + folgeKnoten1.id.equals(start.id)) continue; + tabelle[i][j] = startKnoten.id; + tabelle[i][j + 1] = folgeKnoten1.id; + tabelle[i][j + 2] = folgeKnoten2.id; + tabelle[i][j + 3] = ziel.id; + i++; + } else { + for (Ort folgeKnoten3 : folgeKnoten2.knoten) { + if (folgeKnoten3.knoten.contains(ziel)) { + if (folgeKnoten3.id.equals(folgeKnoten2.id) || + folgeKnoten3.id.equals(folgeKnoten1.id) || + folgeKnoten3.id.equals(startKnoten.id) || + folgeKnoten3.id.equals(start.id) || + folgeKnoten2.id.equals(folgeKnoten1.id) || + folgeKnoten2.id.equals(startKnoten.id) || + folgeKnoten2.id.equals(start.id) || + folgeKnoten1.id.equals(startKnoten.id) || + folgeKnoten1.id.equals(start.id)) continue; + tabelle[i][j] = startKnoten.id; + tabelle[i][j + 1] = folgeKnoten1.id; + tabelle[i][j + 2] = folgeKnoten2.id; + tabelle[i][j + 3] = folgeKnoten3.id; + tabelle[i][j + 4] = ziel.id; + i++; + } + } + } + } + } } } } } + System.out.println("-----------------------------------"); + System.out.println("Route: " + start.id.concat(ziel.id)); + for (int x = 0; x < tabelle.length; x++) { + for (int y = 0; y < tabelle[x].length; y++) { + if (tabelle[x][y] != null) { + System.out.print(tabelle[x][y] + " "); + } + } + System.out.println(); + } + } } this.routen = routen; } } +