Skip to content
Snippets Groups Projects
Commit 7b3998c3 authored by Michael's avatar Michael
Browse files

Steckbrett hinzugefügt

parent be012675
No related branches found
No related tags found
No related merge requests found
......@@ -2,10 +2,10 @@ package Enigma.model;
/**
* Klasse Reflektor
*
* <p>
* Der Reflektor nimmt einen Buchstaben der Klasse Walze entgegen und und kodiert diesen.
* Der kodierte Buchstabe wird an die Klasse Walze wieder zurückgegeben.
*
* <p>
* 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.
......@@ -14,70 +14,38 @@ public class Reflektor {
/**
* Konstanten und Variablen der Klasse Reflektor
*
* <p>
* 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;
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'};
/**
* Funktion Codiere
*
* <p>
* 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;
public char codiere(Character buchstabe) {
int iPositionReflektor = 0;
/*Ermittelt die Position des Buchstaben buchstabe auf der Alphabetswalze*/
for(index = 0; index < WALZE_ALPHABET.length; index++) {
if(getReflektorBuchstabeRein().equals(WALZE_ALPHABET[index])) {
for (int index = 0; index < WALZE_ALPHABET.length; index++) {
if (buchstabe.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");
}
return WALZE_REFLEKTOR[iPositionReflektor];
}
}
package Enigma.model;
/**
*
*/
public class Steckbrett {
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 Character buchstabeEins;
private Character buchstabeZwei;
private int iPositionEins;
private int iPositionZwei;
public Character getBuchstabeEins() {
return buchstabeEins;
/**
*
*/
private int zaehler;
private Character[] orginalBuchstaben;
private Character[] getauschteBuchstaben;
/**
*
*/
public Steckbrett() {
orginalBuchstaben = new Character[10];
getauschteBuchstaben = new Character[10];
}
public void setBuchstabeEins(Character buchstabeEins) {
this.buchstabeEins = buchstabeEins;
}
public Character getBuchstabeZwei() {
return buchstabeZwei;
}
public void setBuchstabeZwei(Character buchstabeZwei) {
this.buchstabeZwei = buchstabeZwei;
}
/**
*
* @param buchstabe1
* @param buchstabe2
* @return
*/
public boolean setzeVertauschung(char buchstabe1, char buchstabe2) {
if (zaehler < orginalBuchstaben.length) {
orginalBuchstaben[zaehler] = buchstabe1;
getauschteBuchstaben[zaehler++] = buchstabe2;
} else {
System.err.println("Zu viele Vertauschungen angegeben!");
}
public char vertauscheBuchstaben(){
/*Variable um Index zu speichern*/
int indexA = 0;
int indexB = 0;
return ueberpruefeVertauschungen();
}
/*Ermittelt die Position des Buchstaben buchstabeEins auf der Alphabetswalze*/
for(indexA = 0; indexA < WALZE_ALPHABET.length; indexA++) {
if(getBuchstabeEins().equals(WALZE_ALPHABET[index])) {
iPositionEins = index;
break;
/**
*
* @return
*/
public boolean ueberpruefeVertauschungen() {
boolean result = true;
for (int n = 0; n < orginalBuchstaben.length; n++) {
if (orginalBuchstaben.equals(orginalBuchstaben[n]) || getauschteBuchstaben.equals(orginalBuchstaben[n]) || getauschteBuchstaben.equals(getauschteBuchstaben[n])) {
System.err.println("Vertauschungen enthalten unzulässige Dopplungen");
result = false;
}
}
/*Ermittelt die Position des Buchstaben buchstabeZwei auf der Alphabetswalze*/
for(indexA = 0; index < WALZE_ALPHABET.length; index++) {
if(getBuchstabeEins().equals(WALZE_ALPHABET[index])) {
iPositionEins = index;
break;
return result;
}
/**
*
* @param buchstabe
* @return
*/
public char codiere(Character buchstabe) {
for (int index = 0; index < getauschteBuchstaben.length; index++) {
if (buchstabe.equals(getauschteBuchstaben[index])) {
buchstabe = orginalBuchstaben[index];
} else if (buchstabe.equals(orginalBuchstaben[index])) {
buchstabe = getauschteBuchstaben[index];
}
}
/*Im Char-Array WALZE_REFLEKTOR wird der Character an der Position iPositionReflektor ausgegeben*/
reflektorBuchstabeRaus = WALZE_REFLEKTOR[iPositionReflektor];
return reflektorBuchstabeRaus;
return 0;
return buchstabe;
}
}
......@@ -33,6 +33,8 @@ public class Walze {
private int iPositionBuchstabeRe;
private Character[] walze;
/**
* Gibt die Parameter der Walze mit
*
......@@ -46,6 +48,7 @@ public class Walze {
this.ringstellung = ringstellung;
}
/**
* Sortiert den Walzennummern das passenden Character-Array mittels switch zu.
*
......@@ -159,8 +162,7 @@ public class Walze {
* Chiffriert den Buchstaben an der Position aus der Methode positionBuchstabe()
* anhand der gewaehlten Walze.
*
* @param iPositionBuchstabe : int : Position des zu chiffrierenden Buchstabens
* @param walze : Character[] : ausgewaehlte Walze
* @param
* @return chiffrierterBuchstabe : Character : chiffrierter Buchstabe
*/
public Character codiere(Character buchstabe) {
......@@ -176,7 +178,7 @@ public class Walze {
* Chiffriert den Buchstaben an der Position aus der Methode positionBuchstabeReverse()
* anhand der AlphaWalze.
*
* @param iPositionBuchstabeRe : int : Position des zu chiffrierenden Buchstabens
* @param
* @return codierterBuchstabeRe : Character : chiffrierter Buchstabe
*/
public Character codiere2(char buchstabe) {
......@@ -241,5 +243,4 @@ public class Walze {
}
}
}
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