From 06c301e980212dd913e27bda40ca4269ffec8f4e Mon Sep 17 00:00:00 2001 From: Dennis Eisold <de@itstall.de> Date: Sat, 30 Nov 2019 01:19:42 +0100 Subject: [PATCH] Letzter Notch Fehler behoben. Jetzt springen die Walzen endlich am richtigen Umsprungpunkt. #12 --- .../java/projekt/enigma/model/Codierer.java | 8 ++++---- src/main/java/projekt/enigma/model/Walze.java | 20 +++++-------------- 2 files changed, 9 insertions(+), 19 deletions(-) diff --git a/src/main/java/projekt/enigma/model/Codierer.java b/src/main/java/projekt/enigma/model/Codierer.java index 6d8ac36..724cb46 100644 --- a/src/main/java/projekt/enigma/model/Codierer.java +++ b/src/main/java/projekt/enigma/model/Codierer.java @@ -196,7 +196,7 @@ public class Codierer { String[] nachricht = new String[4]; String[] codierteNachricht = new Funkraum().empfangeFunkspruch(this.kenngruppe); - if (codierteNachricht.length > 2 && codierteNachricht[1].split(" ").length > 3) { + if (codierteNachricht.length > 1 && codierteNachricht[1].split(" ").length > 3) { nachricht[0] = codierteNachricht[0]; nachricht[1] = mc.convertMorsecodeToBuchstabe(codierteNachricht[1]); nachricht[2] = this.decodiere(nachricht[1], Integer.parseInt(nachricht[0])); @@ -260,9 +260,9 @@ public class Codierer { */ public char[] getWalzen() { char[] walzen = new char[3]; - walzen[0] = this.hardware.getWalzen()[0].getAnzeige(); - walzen[1] = this.hardware.getWalzen()[1].getAnzeige(); - walzen[2] = this.hardware.getWalzen()[2].getAnzeige(); + walzen[0] = this.hardware.getWalzen()[0].getPosition(); + walzen[1] = this.hardware.getWalzen()[1].getPosition(); + walzen[2] = this.hardware.getWalzen()[2].getPosition(); return walzen; } diff --git a/src/main/java/projekt/enigma/model/Walze.java b/src/main/java/projekt/enigma/model/Walze.java index 90211ea..99d4124 100644 --- a/src/main/java/projekt/enigma/model/Walze.java +++ b/src/main/java/projekt/enigma/model/Walze.java @@ -134,33 +134,23 @@ public class Walze { */ public boolean dreheWalze(int richtung) { boolean checkRing = false; + int korrektorFaktor = 0; if (richtung == 1) { - Collections.rotate(Arrays.asList(this.walzeAlpha), richtung); + Collections.rotate(Arrays.asList(this.walzeAlpha), -1); } else { - richtung = -1; - Collections.rotate(Arrays.asList(this.walzeAlpha), richtung); + korrektorFaktor = 1; + Collections.rotate(Arrays.asList(this.walzeAlpha), 1); } // gleicht die Ringstellung mit der aktuellen Position ab - if (this.getPosition() + 1 == this.ringstellung) { + if (this.getPosition() + korrektorFaktor == this.ringstellung) { checkRing = true; } return checkRing; } - /** - * TODO: Dokumentieren // dass selbe wie getPosition - * Gibt den Buchstaben zurueck der in der Walze aktuell eingestellt ist. - * - * @return char an der Stelle temp des Alphabets - */ - public char getAnzeige() { - int temp = this.fetchArrayIndex('A', this.walzeAlpha); - return this.alphabet[temp]; - } - /** * Codiert den mitgegebenen Buchstaben anhand der gewaehlten Walze. * -- GitLab