Skip to content
Snippets Groups Projects
Commit 65b38282 authored by Dennis Eisold's avatar Dennis Eisold
Browse files

Merge branch 'master' into 'master'

Letzter Notch Fehler behoben. Jetzt springen die Walzen endlich am richtigen Umsprungpunkt. #12

Closes #12

See merge request !68
parents 67ea7586 93f8585d
No related branches found
No related tags found
1 merge request!68Letzter Notch Fehler behoben. Jetzt springen die Walzen endlich am richtigen Umsprungpunkt. #12
Pipeline #288 passed with stages
in 4 minutes and 14 seconds
...@@ -3,7 +3,6 @@ package projekt.enigma.model; ...@@ -3,7 +3,6 @@ package projekt.enigma.model;
import org.apache.http.HttpException; import org.apache.http.HttpException;
import java.io.IOException; import java.io.IOException;
import java.util.Arrays;
import java.util.Calendar; import java.util.Calendar;
import java.util.Random; import java.util.Random;
...@@ -197,7 +196,7 @@ public class Codierer { ...@@ -197,7 +196,7 @@ public class Codierer {
String[] nachricht = new String[4]; String[] nachricht = new String[4];
String[] codierteNachricht = new Funkraum().empfangeFunkspruch(this.kenngruppe); 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[0] = codierteNachricht[0];
nachricht[1] = mc.convertMorsecodeToBuchstabe(codierteNachricht[1]); nachricht[1] = mc.convertMorsecodeToBuchstabe(codierteNachricht[1]);
nachricht[2] = this.decodiere(nachricht[1], Integer.parseInt(nachricht[0])); nachricht[2] = this.decodiere(nachricht[1], Integer.parseInt(nachricht[0]));
...@@ -214,6 +213,10 @@ public class Codierer { ...@@ -214,6 +213,10 @@ public class Codierer {
} }
} }
nachricht[1] = sb.toString(); nachricht[1] = sb.toString();
} else {
nachricht[0] = "";
nachricht[1] = "";
nachricht[2] = "Es liegen keine neuen Nachrichten im Funkraum für Sie vor.";
} }
return nachricht; return nachricht;
...@@ -257,9 +260,9 @@ public class Codierer { ...@@ -257,9 +260,9 @@ public class Codierer {
*/ */
public char[] getWalzen() { public char[] getWalzen() {
char[] walzen = new char[3]; char[] walzen = new char[3];
walzen[0] = this.hardware.getWalzen()[0].getAnzeige(); walzen[0] = this.hardware.getWalzen()[0].getPosition();
walzen[1] = this.hardware.getWalzen()[1].getAnzeige(); walzen[1] = this.hardware.getWalzen()[1].getPosition();
walzen[2] = this.hardware.getWalzen()[2].getAnzeige(); walzen[2] = this.hardware.getWalzen()[2].getPosition();
return walzen; return walzen;
} }
...@@ -320,8 +323,6 @@ public class Codierer { ...@@ -320,8 +323,6 @@ public class Codierer {
String[] nachricht = codierteNachricht.split(" "); String[] nachricht = codierteNachricht.split(" ");
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
System.out.println(Arrays.toString(nachricht));
// Uhrzeit // Uhrzeit
sb.append(nachricht[0]).append(" "); sb.append(nachricht[0]).append(" ");
......
...@@ -134,33 +134,23 @@ public class Walze { ...@@ -134,33 +134,23 @@ public class Walze {
*/ */
public boolean dreheWalze(int richtung) { public boolean dreheWalze(int richtung) {
boolean checkRing = false; boolean checkRing = false;
int korrektorFaktor = 0;
if (richtung == 1) { if (richtung == 1) {
Collections.rotate(Arrays.asList(this.walzeAlpha), richtung); Collections.rotate(Arrays.asList(this.walzeAlpha), -1);
} else { } else {
richtung = -1; korrektorFaktor = 1;
Collections.rotate(Arrays.asList(this.walzeAlpha), richtung); Collections.rotate(Arrays.asList(this.walzeAlpha), 1);
} }
// gleicht die Ringstellung mit der aktuellen Position ab // gleicht die Ringstellung mit der aktuellen Position ab
if (this.getPosition() + 1 == this.ringstellung) { if (this.getPosition() + korrektorFaktor == this.ringstellung) {
checkRing = true; checkRing = true;
} }
return checkRing; 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. * Codiert den mitgegebenen Buchstaben anhand der gewaehlten Walze.
* *
......
...@@ -29,23 +29,23 @@ public class HardwareTest { ...@@ -29,23 +29,23 @@ public class HardwareTest {
char result; char result;
h.resetWalzen(); h.resetWalzen();
result = h.codiere('A'); 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'); 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'); 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'); 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(); h.resetWalzen();
result = h.codiere('P'); result = h.codiere('G');
Assert.assertEquals("Decodiere: P Erwartet A, erhalten " + result, 'A', result); Assert.assertEquals("Decodiere: G Erwartet A, erhalten " + result, 'A', result);
result = h.codiere('R'); result = h.codiere('H');
Assert.assertEquals("Decodiere: R Erwartet B, erhalten " + result, 'B', result); Assert.assertEquals("Decodiere: R Erwartet H, erhalten " + result, 'B', result);
result = h.codiere('E'); result = h.codiere('C');
Assert.assertEquals("Decodiere: E Erwartet I, erhalten " + result, 'I', result); Assert.assertEquals("Decodiere: C Erwartet I, erhalten " + result, 'I', result);
result = h.codiere('A'); result = h.codiere('U');
Assert.assertEquals("Decodiere: A Erwartet F, erhalten " + result, 'F', result); Assert.assertEquals("Decodiere: U Erwartet F, erhalten " + result, 'F', result);
h.resetWalzen(); h.resetWalzen();
h.getSteckbrett().setzeVertauschung('B', 'G'); h.getSteckbrett().setzeVertauschung('B', 'G');
...@@ -55,10 +55,10 @@ public class HardwareTest { ...@@ -55,10 +55,10 @@ public class HardwareTest {
h.getSteckbrett().setzeVertauschung('T', 'X'); h.getSteckbrett().setzeVertauschung('T', 'X');
result = h.codiere('I'); 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(); h.resetWalzen();
result = h.codiere('D'); result = h.codiere('K');
Assert.assertEquals("Codiere: Erwartet I, erhalten " + result, 'I', result); Assert.assertEquals("Codiere: K Erwartet D, erhalten " + result, 'D', result);
} }
} }
\ No newline at end of file
...@@ -10,7 +10,7 @@ public class WalzeTest { ...@@ -10,7 +10,7 @@ public class WalzeTest {
@Test @Test
public void setRingstellung() { public void setRingstellung() {
Walze w = new Walze(1, 1); Walze w = new Walze(1, 1);
char temp = w.getAnzeige(); char temp = w.getPosition();
Assert.assertEquals('A', temp); Assert.assertEquals('A', temp);
} }
...@@ -18,14 +18,14 @@ public class WalzeTest { ...@@ -18,14 +18,14 @@ public class WalzeTest {
public void dreheWalze() { public void dreheWalze() {
Walze w = new Walze(1, 3); Walze w = new Walze(1, 3);
assertFalse("false erwartet, true geliefert", w.dreheWalze(1)); 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); Assert.assertEquals("B erwartet, " + temp + " zurück gegeben", 'B', temp);
} }
@Test @Test
public void getAnzeige() { public void getPosition() {
Walze w = new Walze(1, 1); Walze w = new Walze(1, 1);
char temp = w.getAnzeige(); char temp = w.getPosition();
Assert.assertEquals('A', temp); Assert.assertEquals('A', temp);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment