Skip to content
Snippets Groups Projects
Commit 722b0a2f authored by Dennis Eisold's avatar Dennis Eisold
Browse files
parents 26196621 f119d1f1
No related branches found
No related tags found
No related merge requests found
package Enigma.model;
/**
* Klasse Reflektor
*
* Der Reflektor nimmt einen Buchstaben der Klasse Walze entgegen und und kodiert diesen.
* Der kodierte Buchstabe wird an die Klasse Walze wieder zurückgegeben.
*
* Prinzipiell verhält sich die Klasse Refelktor wie die Klasse Walze, außer das sie sich
* nach Betätigung einer Taste nicht dreht (starr montiert) und sie gibt keine Signale
* an andere Walzen zum drehen.
*/
public class Reflektor {
/**
* Konstanten und Variablen der Klasse Reflektor
*
* WALZE_ALPHABET : konstanter Char-Array mit den Werten des Alphabeths (26 Werte)
* WALZE_REFLEKTOR : konstanter Char-Array mit den Werten des Reflektors (26 Werte)
* reflektorBuchstabeRein : Character mit dem an die Klasse übergebenen Character
* reflektorBuchstabeRaus : Character nach der Codierung in der Klasse Reflektor
* iPositionReflektor : Integer mit der Positionsnummer des Characters im Array
*/
private final Character[] WALZE_ALPHABET = {'A','B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
private final Character[] WALZE_REFLEKTOR= {'E', 'J', 'M', 'Z', 'A', 'L', 'Y', 'X', 'V', 'B', 'W', 'F', 'C', 'R', 'Q', 'U', 'O', 'N', 'T', 'S', 'P', 'I', 'K', 'H', 'G', 'D'};
private Character reflektorBuchstabeRein;
private Character reflektorBuchstabeRaus;
private int iPositionReflektor;
/**
* Funktion Codiere
*
* Durchsucht das konstante Char-Array WALZE_ALPHABET nach der Position eines bestimmten
* Buchstabens und gibt den Character an der entsprechenden Position im konstanten
* Char-Array WALZE_REFLEKTOR zurück.
*
* @return reflektorBuchstabeRaus: Character: Der kodierte Buchstabe aus dem Reflektor
*/
public char codiere (){
int index = 0;
/*Ermittelt die Position des Buchstaben buchstabe auf der Alphabetswalze*/
for(index = 0; index < WALZE_ALPHABET.length; index++) {
if(getReflektorBuchstabeRein().equals(WALZE_ALPHABET[index])) {
iPositionReflektor = index;
break;
}
}
/*Im Char-Array WALZE_REFLEKTOR wird der Character an der Position iPositionReflektor ausgegeben*/
reflektorBuchstabeRaus = WALZE_REFLEKTOR[iPositionReflektor];
return reflektorBuchstabeRaus;
}
/**
* Getter getReflektorBuchstabeRein
*
* Gibt den Wert der Variablen reflektorBuchstabeRein zurück
*
* @return reflektorBuchstabeRein: Character: gibt den Buchstaben zurück
*/
public Character getReflektorBuchstabeRein() {
return reflektorBuchstabeRein;
}
/**
* Setter setReflektorBuchstabeRein
*
* Setzt den Wert der Variablen reflektorBuchstabeRein
*
* @param reflektorBuchstabeRein: Character: setzt den Wert des Buchstabens
*/
public void setReflektorBuchstabeRein(Character reflektorBuchstabeRein) {
if (Character.isLetter(reflektorBuchstabeRein)){
this.reflektorBuchstabeRein = reflektorBuchstabeRein;
} else{
System.err.println("Kein Buchstabe übergeben im Reflektor");
}
}
}
...@@ -2,12 +2,12 @@ package Enigma.model; ...@@ -2,12 +2,12 @@ package Enigma.model;
public class Walze { public class Walze {
Character buchstabe = null; private Character buchstabe = null;
Character ringstellung = null; private Character ringstellung = null;
int walzennr = 0; private int walzennr;
int iPositionBuchstabe = 0; private int iPositionBuchstabe;
int iPositionBuchstabeRe = 0; private int iPositionBuchstabeRe;
Character[] walze = new Character[25]; private Character[] walze;
/** /**
* Gibt die Parameter der Walze mit * Gibt die Parameter der Walze mit
...@@ -17,6 +17,7 @@ public class Walze { ...@@ -17,6 +17,7 @@ public class Walze {
* @param ringstellung : Character : Einstellung des Notch * @param ringstellung : Character : Einstellung des Notch
*/ */
public Walze(int walzennr, Character buchstabe, Character ringstellung) { public Walze(int walzennr, Character buchstabe, Character ringstellung) {
this.walze = new Character[25];
this.walzennr = walzennr; this.walzennr = walzennr;
this.buchstabe = buchstabe; this.buchstabe = buchstabe;
this.ringstellung = ringstellung; this.ringstellung = ringstellung;
...@@ -25,7 +26,7 @@ public class Walze { ...@@ -25,7 +26,7 @@ public class Walze {
/** /**
* @return buchstabe : Character : gibt den neuen Buchstaben zurueck * @return buchstabe : Character : gibt den neuen Buchstaben zurueck
*/ */
public char getBuchstabe() { public Character getBuchstabe() {
return buchstabe; return buchstabe;
} }
...@@ -37,7 +38,7 @@ public class Walze { ...@@ -37,7 +38,7 @@ public class Walze {
* @param buchstabe : Character : Grundeinstellung der Walze * @param buchstabe : Character : Grundeinstellung der Walze
*/ */
private void setBuchstabe(Character buchstabe) { private void setBuchstabe(Character buchstabe) {
this.buchstabe.toUpperCase(buchstabe); this.buchstabe = Character.toUpperCase(buchstabe);
if(buchstabe.isLetter(buchstabe)) { if(buchstabe.isLetter(buchstabe)) {
this.buchstabe = buchstabe; this.buchstabe = buchstabe;
...@@ -141,7 +142,7 @@ public class Walze { ...@@ -141,7 +142,7 @@ public class Walze {
//Ermittelt die Position des Buchstaben buchstabe auf der Alphabetswalze //Ermittelt die Position des Buchstaben buchstabe auf der Alphabetswalze
for(index = 0; index < walzeAlpha.length; index++) { for(index = 0; index < walzeAlpha.length; index++) {
if(buchstabe.equals(walzeAlpha[index])) { if(getBuchstabe().equals(walzeAlpha[index])) {
iPositionBuchstabe = index; iPositionBuchstabe = index;
break; break;
} }
...@@ -198,7 +199,7 @@ public class Walze { ...@@ -198,7 +199,7 @@ public class Walze {
//Ermittelt die Position des Buchstaben buchstabe auf der Alphabetswalze //Ermittelt die Position des Buchstaben buchstabe auf der Alphabetswalze
for(index = 0; index < walze.length; index++) { for(index = 0; index < walze.length; index++) {
if(buchstabe.equals(walze[index])) { if(getBuchstabe().equals(walze[index])) {
iPositionBuchstabeRe = index; iPositionBuchstabeRe = index;
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