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
1 merge request!6Reflektor-Klasse hinzugefügt
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;
public class Walze {
Character buchstabe = null;
Character ringstellung = null;
int walzennr = 0;
int iPositionBuchstabe = 0;
int iPositionBuchstabeRe = 0;
Character[] walze = new Character[25];
private Character buchstabe = null;
private Character ringstellung = null;
private int walzennr;
private int iPositionBuchstabe;
private int iPositionBuchstabeRe;
private Character[] walze;
/**
* Gibt die Parameter der Walze mit
......@@ -17,6 +17,7 @@ public class Walze {
* @param ringstellung : Character : Einstellung des Notch
*/
public Walze(int walzennr, Character buchstabe, Character ringstellung) {
this.walze = new Character[25];
this.walzennr = walzennr;
this.buchstabe = buchstabe;
this.ringstellung = ringstellung;
......@@ -25,7 +26,7 @@ public class Walze {
/**
* @return buchstabe : Character : gibt den neuen Buchstaben zurueck
*/
public char getBuchstabe() {
public Character getBuchstabe() {
return buchstabe;
}
......@@ -37,7 +38,7 @@ public class Walze {
* @param buchstabe : Character : Grundeinstellung der Walze
*/
private void setBuchstabe(Character buchstabe) {
this.buchstabe.toUpperCase(buchstabe);
this.buchstabe = Character.toUpperCase(buchstabe);
if(buchstabe.isLetter(buchstabe)) {
this.buchstabe = buchstabe;
......@@ -141,7 +142,7 @@ public class Walze {
//Ermittelt die Position des Buchstaben buchstabe auf der Alphabetswalze
for(index = 0; index < walzeAlpha.length; index++) {
if(buchstabe.equals(walzeAlpha[index])) {
if(getBuchstabe().equals(walzeAlpha[index])) {
iPositionBuchstabe = index;
break;
}
......@@ -198,7 +199,7 @@ public class Walze {
//Ermittelt die Position des Buchstaben buchstabe auf der Alphabetswalze
for(index = 0; index < walze.length; index++) {
if(buchstabe.equals(walze[index])) {
if(getBuchstabe().equals(walze[index])) {
iPositionBuchstabeRe = index;
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