Skip to content
Snippets Groups Projects
Commit 357c983b authored by Flori N's avatar Flori N
Browse files

Update Klasse Walze / Walzeneinstellung

parent 5838cc26
No related branches found
No related tags found
1 merge request!28Master
...@@ -32,6 +32,7 @@ public class Walze { ...@@ -32,6 +32,7 @@ public class Walze {
private int ringstellung; private int ringstellung;
private int walzennr; private int walzennr;
private int iPositionBuchstabe; private int iPositionBuchstabe;
private int verschoben;
private Character[] walze; private Character[] walze;
...@@ -42,10 +43,11 @@ public class Walze { ...@@ -42,10 +43,11 @@ public class Walze {
* @param ringstellung : Character : Einstellung des Notch * @param ringstellung : Character : Einstellung des Notch
*/ */
public Walze(int walzennr, int ringstellung) { public Walze(int walzennr, int ringstellung) {
this.walze = new Character[25]; this.walze = new Character[26];
this.walzennr = walzennr; this.walzennr = walzennr;
this.buchstabe = 'A'; this.buchstabe = 'A';
this.iPositionBuchstabe = 0; this.iPositionBuchstabe = 0;
this.verschoben = 0;
this.ringstellung = ringstellung; this.ringstellung = ringstellung;
} }
...@@ -133,56 +135,53 @@ public class Walze { ...@@ -133,56 +135,53 @@ public class Walze {
this.iPositionBuchstabe += 1; this.iPositionBuchstabe += 1;
} }
checkRing = this.iPositionBuchstabe == getRingstellung(); checkRing = this.iPositionBuchstabe == (getRingstellung() - 1);
return checkRing; return checkRing;
} }
public int verschiebung(int i) {
if((i + iPositionBuchstabe) > 26) {
int verschoben = (i + iPositionBuchstabe) - 26 ;
} else {
verschoben = i + iPositionBuchstabe;
}
return verschoben;
}
//codiere(char buchstabe) return char => Gibt den verschlüsselten Buchstaben zurück
/** /**
* Chiffriert den Buchstaben an der Position aus der Methode positionBuchstabe() * Chiffriert den Buchstaben an der Position aus der Methode positionBuchstabe()
* anhand der gewaehlten Walze. * anhand der gewaehlten Walze.
* *
* @param
* @return chiffrierterBuchstabe : Character : chiffrierter Buchstabe * @return chiffrierterBuchstabe : Character : chiffrierter Buchstabe
*/ */
public char codiere(char buchstabe) { public char codiere(char buchstabe) {
/**
* TODO: contains fragt ab ob der char im Alphabet enthalten ist. Das sollten wir vielleicht noch in eine
* Hilfsfunktion packen. Vielleicht sogar in der Hardware Klasse.
*/
boolean contains = false;
for (int i = 0; i < walzeAlpha.length; i++) { for (int i = 0; i < walzeAlpha.length; i++) {
if (walzeAlpha[i].equals(buchstabe)) { if (walzeAlpha[i].equals(buchstabe)) {
buchstabe = walzenNummer()[i]; buchstabe = walzenNummer()[verschiebung(i)];
contains = true;
break; break;
} }
} }
if(!contains) {
buchstabe = 'X';
}
return buchstabe; return buchstabe;
} }
//codiere2(char buchstabe) => Gibt den vertauschten Buchstaben zurück (Reverse)
/** /**
* Chiffriert den Buchstaben an der Position aus der Methode positionBuchstabeReverse() * Chiffriert den Buchstaben an der Position aus der Methode positionBuchstabeReverse()
* anhand der AlphaWalze. * anhand der AlphaWalze.
* *
* @param
* @return codierterBuchstabeRe : Character : chiffrierter Buchstabe * @return codierterBuchstabeRe : Character : chiffrierter Buchstabe
*/ */
public char codiere2(char buchstabe) { public char codiere2(char buchstabe) {
for (int i = 0; i < walzenNummer().length; i++) { for (int i = 0; i < walzenNummer().length; i++) {
if (walzenNummer()[i].equals(buchstabe)) { if (walzenNummer()[i].equals(buchstabe)) {
buchstabe = walzeAlpha[i]; buchstabe = walzeAlpha[verschiebung(i)];
break; break;
} }
} }
......
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