diff --git a/src/main/java/projekt/enigma/model/Codierer.java b/src/main/java/projekt/enigma/model/Codierer.java index 590ecf5ddb5f5c7dd500a76938ab2a31578c2858..724cb462b9b6034bd2544aed4bd3446ebb7b1d0d 100644 --- a/src/main/java/projekt/enigma/model/Codierer.java +++ b/src/main/java/projekt/enigma/model/Codierer.java @@ -3,7 +3,6 @@ package projekt.enigma.model; import org.apache.http.HttpException; import java.io.IOException; -import java.util.Arrays; import java.util.Calendar; import java.util.Random; @@ -197,7 +196,7 @@ public class Codierer { String[] nachricht = new String[4]; String[] codierteNachricht = new Funkraum().empfangeFunkspruch(this.kenngruppe); - if (codierteNachricht[1] != null) { + 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])); @@ -214,6 +213,10 @@ public class Codierer { } } nachricht[1] = sb.toString(); + } else { + nachricht[0] = ""; + nachricht[1] = ""; + nachricht[2] = "Es liegen keine neuen Nachrichten im Funkraum für Sie vor."; } return nachricht; @@ -257,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; } @@ -320,8 +323,6 @@ public class Codierer { String[] nachricht = codierteNachricht.split(" "); StringBuilder sb = new StringBuilder(); - System.out.println(Arrays.toString(nachricht)); - // Uhrzeit sb.append(nachricht[0]).append(" "); diff --git a/src/main/java/projekt/enigma/model/Walze.java b/src/main/java/projekt/enigma/model/Walze.java index 90211ea8f84ad300fcec10621ae0c4feeabdbd4b..99d41248aa3aca3a3529674c1750a79c4ebe8a3a 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. * diff --git a/src/test/java/projekt/enigma/model/HardwareTest.java b/src/test/java/projekt/enigma/model/HardwareTest.java index 742e6aba1b8679f81f8729a183fc7dd377616aa9..8c1fc82e3ffb96e35caf063154630e06a8a434b8 100644 --- a/src/test/java/projekt/enigma/model/HardwareTest.java +++ b/src/test/java/projekt/enigma/model/HardwareTest.java @@ -29,23 +29,23 @@ public class HardwareTest { char result; h.resetWalzen(); result = h.codiere('A'); - Assert.assertEquals("Codiere: A Erwartet P, erhalten " + result, 'P', result); + Assert.assertEquals("Codiere: A Erwartet G, erhalten " + result, 'G', result); result = h.codiere('B'); - Assert.assertEquals("Codiere: B Erwartet R, erhalten " + result, 'R', result); + Assert.assertEquals("Codiere: B Erwartet H, erhalten " + result, 'H', result); result = h.codiere('I'); - Assert.assertEquals("Codiere: I Erwartet E, erhalten " + result, 'E', result); + Assert.assertEquals("Codiere: I Erwartet C, erhalten " + result, 'C', result); result = h.codiere('F'); - Assert.assertEquals("Codiere: F Erwartet A, erhalten " + result, 'A', result); + Assert.assertEquals("Codiere: F Erwartet U, erhalten " + result, 'U', result); h.resetWalzen(); - result = h.codiere('P'); - Assert.assertEquals("Decodiere: P Erwartet A, erhalten " + result, 'A', result); - result = h.codiere('R'); - Assert.assertEquals("Decodiere: R Erwartet B, erhalten " + result, 'B', result); - result = h.codiere('E'); - Assert.assertEquals("Decodiere: E Erwartet I, erhalten " + result, 'I', result); - result = h.codiere('A'); - Assert.assertEquals("Decodiere: A Erwartet F, erhalten " + result, 'F', result); + result = h.codiere('G'); + Assert.assertEquals("Decodiere: G Erwartet A, erhalten " + result, 'A', result); + result = h.codiere('H'); + Assert.assertEquals("Decodiere: R Erwartet H, erhalten " + result, 'B', result); + result = h.codiere('C'); + Assert.assertEquals("Decodiere: C Erwartet I, erhalten " + result, 'I', result); + result = h.codiere('U'); + Assert.assertEquals("Decodiere: U Erwartet F, erhalten " + result, 'F', result); h.resetWalzen(); h.getSteckbrett().setzeVertauschung('B', 'G'); @@ -55,10 +55,10 @@ public class HardwareTest { h.getSteckbrett().setzeVertauschung('T', 'X'); result = h.codiere('I'); - Assert.assertEquals("Codiere: Erwartet F, erhalten " + result, 'D', result); + Assert.assertEquals("Codiere: I Erwartet F, erhalten " + result, 'F', result); h.resetWalzen(); - result = h.codiere('D'); - Assert.assertEquals("Codiere: Erwartet I, erhalten " + result, 'I', result); + result = h.codiere('K'); + Assert.assertEquals("Codiere: K Erwartet D, erhalten " + result, 'D', result); } } \ No newline at end of file diff --git a/src/test/java/projekt/enigma/model/WalzeTest.java b/src/test/java/projekt/enigma/model/WalzeTest.java index 532244a3c4b8292f852dc670cbffa53dee0854eb..a53f3832b36f9bffa8fba90d0c7919be12ddb09d 100644 --- a/src/test/java/projekt/enigma/model/WalzeTest.java +++ b/src/test/java/projekt/enigma/model/WalzeTest.java @@ -10,7 +10,7 @@ public class WalzeTest { @Test public void setRingstellung() { Walze w = new Walze(1, 1); - char temp = w.getAnzeige(); + char temp = w.getPosition(); Assert.assertEquals('A', temp); } @@ -18,14 +18,14 @@ public class WalzeTest { public void dreheWalze() { Walze w = new Walze(1, 3); assertFalse("false erwartet, true geliefert", w.dreheWalze(1)); - char temp = w.getAnzeige(); + char temp = w.getPosition(); Assert.assertEquals("B erwartet, " + temp + " zurück gegeben", 'B', temp); } @Test - public void getAnzeige() { + public void getPosition() { Walze w = new Walze(1, 1); - char temp = w.getAnzeige(); + char temp = w.getPosition(); Assert.assertEquals('A', temp); }