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 alfatrainingkurse/java/enigma!68
parents 67ea7586 93f8585d
No related branches found
No related tags found
No related merge requests found
......@@ -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(" ");
......
......@@ -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.
*
......
......@@ -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
......@@ -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);
}
......
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