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

Merge branch 'master' into 'master'

Reflektor-Klasse hinzugefügt

See merge request !6
parents c6f059bf b433415f
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