Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
E
Enigma
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Flori N
Enigma
Commits
0d0862d9
Commit
0d0862d9
authored
Dec 04, 2019
by
Flori N
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Doku & Code Conventionen Walze, Reflektor, Morsecode, Codebuch
parent
2f893d6d
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
103 additions
and
109 deletions
+103
-109
src/main/java/projekt/enigma/model/Codebuch.java
src/main/java/projekt/enigma/model/Codebuch.java
+27
-24
src/main/java/projekt/enigma/model/Morsecode.java
src/main/java/projekt/enigma/model/Morsecode.java
+37
-42
src/main/java/projekt/enigma/model/Reflektor.java
src/main/java/projekt/enigma/model/Reflektor.java
+10
-10
src/main/java/projekt/enigma/model/Walze.java
src/main/java/projekt/enigma/model/Walze.java
+29
-33
No files found.
src/main/java/projekt/enigma/model/Codebuch.java
View file @
0d0862d9
...
...
@@ -7,18 +7,18 @@ import java.time.ZoneId;
/**
* Das Codebuch war eines der essentiel wichtigen Sachen bei der Enigma.
* Jeder Enigma geh
örte auch ein Codebuch bei, welches notwendig war um die Nachrichten zu ver/entschlü
sseln.
* Jeder Enigma geh
oerte auch ein Codebuch bei, welches notwendig war um die Nachrichten zu ver/entschlue
sseln.
* Im Codebuch standen für jeden Tag des Monats die notwendigen Einstellungen welche vorgenommen werden
* mussten um die Texte zu ver/entschl
ü
sseln.
* Hiernach wurden die Walzen eingesetzt, die Ringe für den R
ü
cksprung der Walze gesetzt und deren Grundeinstellung
* mussten um die Texte zu ver/entschl
ue
sseln.
* Hiernach wurden die Walzen eingesetzt, die Ringe für den R
ue
cksprung der Walze gesetzt und deren Grundeinstellung
* vorgenommen.
* Bei der Enigma um welche es hier geht (Enigma I) gab es zus
ä
tzlich ein Steckbrett, welches ebenfalls im Codebuch
* Bei der Enigma um welche es hier geht (Enigma I) gab es zus
ae
tzlich ein Steckbrett, welches ebenfalls im Codebuch
* festgelegt war.
* <p>
* Dieses Codebuch Objekt enth
ä
lt die Einstellungen eines Tages, welche mittels Getter und Setter
* verarbeitet werden k
ö
nnen.
* Dieses Codebuch Objekt enth
ae
lt die Einstellungen eines Tages, welche mittels Getter und Setter
* verarbeitet werden k
oe
nnen.
* <p>
* Zus
ätzlich gibt es zu Debug Zwecken eine überschriebene toString Funktion welche das Objekt als String zurü
ck
* Zus
aetzlich gibt es zu Debug Zwecken eine ueberschriebene toString Funktion welche das Objekt als String zurue
ck
* geben kann.
*/
public
class
Codebuch
{
...
...
@@ -44,6 +44,7 @@ public class Codebuch {
* steckverbindung : char[][] : stellt die Steckverbindungen im Steckbrett dar
*/
private
char
[][]
steckverbindung
;
//endregion
//region Konstruktor
...
...
@@ -67,16 +68,16 @@ public class Codebuch {
this
.
steckverbindung
[
i
][
1
]
=
'A'
;
}
}
//endregion
//region Funktionen & Methoden
/**
* TODO: Dokumentieren
* Holt den Tagesschluessel aus dem Codebuch ab. Ist kein Tag angegeben, wird der aktuelle Tag genutzt.
* Aus dem Tagesschluessel werden die Werte fuer die Walzenlage, Ringstellung und Steckverbindung
* gesetzt.
*
* @param tag : int[] : gibt einen Tag oder mehrere Tage mit
* @param tag : int[] : gibt
keinen,
einen Tag oder mehrere Tage mit
*/
public
void
fetchTagesschluessel
(
int
...
tag
)
{
String
[]
walzenlage
,
ringstellung
,
db
;
...
...
@@ -89,6 +90,7 @@ public class Codebuch {
this
.
setTag
(
Integer
.
parseInt
(
db
[
0
]));
// setzen der Walzenlage, Ringstellung, Steckverbindung
walzenlage
=
db
[
1
].
split
(
","
);
for
(
int
i
=
0
;
i
<
3
;
i
++)
{
this
.
setWalzenlage
(
i
,
Integer
.
parseInt
(
walzenlage
[
i
]));
...
...
@@ -100,12 +102,11 @@ public class Codebuch {
}
this
.
setSteckverbindung
(
db
[
3
].
split
(
","
));
}
/**
* Gibt die aktuelle Instanz des Codebuches als String zur
ü
ck.
* Hierbei werden der Tag die Walzenlagen, Ring-/Grundstellung sowie die Steckverbindungen zur
ü
ck gegeben.
* Gibt die aktuelle Instanz des Codebuches als String zur
ue
ck.
* Hierbei werden der Tag die Walzenlagen, Ring-/Grundstellung sowie die Steckverbindungen zur
ue
ck gegeben.
*
* @return String : String des gesamten Objektes
*/
...
...
@@ -148,6 +149,7 @@ public class Codebuch {
return
sb
.
toString
();
}
//endregion
//region Setter
...
...
@@ -156,8 +158,7 @@ public class Codebuch {
*
* @param kabel : String[] : Die Steckverbindungen die gesteckt werden sollen.
* Jeder Eintrag im Array ist ein String mit zwei Zeichen.
* Diese werden in zwei chars zerlegt und anschließend im globalen
* Array gespeichert.
* Diese werden in zwei chars zerlegt und anschließend im globalen Array gespeichert.
*/
private
void
setSteckverbindung
(
String
[]
kabel
)
{
int
counter
=
0
;
...
...
@@ -184,7 +185,7 @@ public class Codebuch {
* Setzt die Ringstellung dieser Instanz
*
* @param position : int : Auf welche Walze wird der Ring aufgesetzt?
* @param ringstellung :
char : An dieser Position soll die nächste Walze weiter gedreht werden.TODO: char || int?
* @param ringstellung :
int : An dieser Position soll die nächste Walze weiter gedreht werden.
*/
private
void
setRingstellung
(
int
position
,
int
ringstellung
)
{
this
.
ringstellung
[
position
]
=
ringstellung
;
...
...
@@ -195,12 +196,15 @@ public class Codebuch {
*
* @param tag : int : Tag
*/
void
setTag
(
int
tag
)
{
this
.
tag
=
tag
;
}
void
setTag
(
int
tag
)
{
this
.
tag
=
tag
;
}
//endregion
//region Getter
/**
* Gibt den Tag dieser Instanz zur
ü
ck
* Gibt den Tag dieser Instanz zur
ue
ck
*
* @return int : Tag
*/
...
...
@@ -209,29 +213,28 @@ public class Codebuch {
}
/**
* Gibt die Walzenlage dieser Instanz zur
ü
ck
* Gibt die Walzenlage dieser Instanz zur
ue
ck
*
* @return
String
[] : Walzenlage
* @return
walzenlage : int
[] : Walzenlage
*/
public
int
[]
getWalzenlage
()
{
return
walzenlage
;
}
/**
* Gibt die Ringstellung dieser Instanz zur
ü
ck
* Gibt die Ringstellung dieser Instanz zur
ue
ck
*
* @return
String[]
: Ringstellung
* @return
ringstellung : int
: Ringstellung
*/
public
int
[]
getRingstellung
()
{
return
ringstellung
;
}
/**
* Gibt die Steckverbindung
dieser Instanz zurü
ck
* Gibt die Steckverbindung
en dieser Instanz zurue
ck
*
* @return
String
[] : Steckverbindung
* @return
steckerverbindung : char[]
[] : Steckverbindung
*/
// TODO
public
char
[][]
getSteckverbindung
()
{
return
this
.
steckverbindung
;
}
...
...
src/main/java/projekt/enigma/model/Morsecode.java
View file @
0d0862d9
...
...
@@ -4,18 +4,22 @@ import java.util.*;
import
java.util.Map.Entry
;
/**
* Diese Klasse definiert die Zugeh
örigkeit zwischen den Buchstaben A-Z und dem zugehörigen
Morsecode.
* Diese Klasse definiert die Zugeh
oerigkeit zwischen den Buchstaben A-Z und dem
Morsecode.
* Die Funktionen sollen Texte von und zu Morsecode konvertieren.
*/
public
class
Morsecode
{
// Anlegen der codeMap als TreeMap
private
TreeMap
<
String
,
String
>
codeMap
=
new
TreeMap
<>();
/**
* Im Konstruktor werden alle verfügbaren Buchstaben (A-Z) und deren zugehörigen
* Morsecodes, der codeMap hinzugefügt.
* Anlegen der codeMap als TreeMap
*/
private
TreeMap
<
String
,
String
>
codeMap
;
/**
* Im Konstruktor werden alle verfuegbaren Buchstaben (A-Z) und deren zugehoerigen
* Morsecodes, der codeMap hinzugefuegt.
*/
public
Morsecode
()
{
codeMap
=
new
TreeMap
<>();
this
.
codeMap
.
put
(
"A"
,
".-"
);
this
.
codeMap
.
put
(
"B"
,
"-..."
);
this
.
codeMap
.
put
(
"C"
,
"-.-."
);
...
...
@@ -56,60 +60,54 @@ public class Morsecode {
}
/**
* Diese Funktion
überprüft ob das ü
bergebene Buchstabe in der codeMap enthalten ist.
* Wenn e
s enthalten ist, wird der zugehörige Morsecode zurück gegeben, ansonsten null
* Diese Funktion
ueberprueft ob der ue
bergebene Buchstabe in der codeMap enthalten ist.
* Wenn e
r enthalten ist, wird der zugehoerige Morsecode zurueck gegeben, ansonsten null.
*
* @param buchstabe : char : Zu
ü
bersetzender Buchstabe
* @return
: String : Das zugehöriger
Morsecode aus der codeMap
* @param buchstabe : char : Zu
ue
bersetzender Buchstabe
* @return
String : Der zugehoerige
Morsecode aus der codeMap
*/
private
String
getMorsecode
(
char
buchstabe
)
{
// Testen ob das Char in der codeMap enthalten ist. Wenn ja, raussuchen und zurück geben
return
this
.
codeMap
.
getOrDefault
(
String
.
valueOf
(
buchstabe
).
toUpperCase
(),
null
);
}
/**
* Der
ü
bergebene String wird in seine einzelnen Zeichen (char) zerlegt und an die Funktion getMorsecode
*
übergeben und der zugehö
rige Morsecode raus gesucht.
* Der
ue
bergebene String wird in seine einzelnen Zeichen (char) zerlegt und an die Funktion getMorsecode
*
uebergeben und der zugehoe
rige Morsecode raus gesucht.
* Mittels eines StringBuilders werden die Ergebnisse zu einem Rückgabe String zusammen gesetzt.
* Wenn kein zugeh
ö
riger Code in der codeMap gefunden wurde, wird das Zeichen ignoriert da es bei der
* Wenn kein zugeh
oe
riger Code in der codeMap gefunden wurde, wird das Zeichen ignoriert da es bei der
* Enigma nicht vorhanden war.
*
* @param input : String : Zu konve
n
tierender Text
* @return String : D
ie
in Morsecode konvertierte Text
* @param input : String : Zu konve
r
tierender Text
* @return String : D
er
in Morsecode konvertierte Text
*/
public
String
convertBuchstabeToMorsecode
(
String
input
)
{
StringBuilder
sb
=
new
StringBuilder
();
String
morsecode
;
// Durch alle char im übergebenen String loopen
for
(
int
i
=
0
;
i
<
input
.
length
();
i
++)
{
// Wenn der char in der codeMap enthalten ist, an den Rückgabe String anheften, ansonsten nichts ignorieren.
// Durch alle char im uebergebenen String loopen
for
(
int
i
=
0
;
i
<
input
.
length
();
i
++)
{
morsecode
=
this
.
getMorsecode
(
input
.
charAt
(
i
));
if
(
morsecode
!=
null
)
{
if
(
morsecode
!=
null
)
{
sb
.
append
(
morsecode
).
append
(
' '
);
}
}
// Gibt den konvertierten String zurück
return
sb
.
toString
();
}
/**
* Diese Funktion
überprüft ob der ü
bergebene Morsecode in der codeMap enthalten ist.
* Wenn er enthalten ist, wird der zugeh
örige Buchstabe zurü
ck gegeben, ansonsten null
* Diese Funktion
ueberprueft ob der ue
bergebene Morsecode in der codeMap enthalten ist.
* Wenn er enthalten ist, wird der zugeh
oerige Buchstabe zurue
ck gegeben, ansonsten null
*
* @param morsecode : String : Der zu
ü
bersetzende Morsecode
* @return : String : D
as zugehöriger Buchstaben aus der this.
codeMap
* @param morsecode : String : Der zu
ue
bersetzende Morsecode
* @return : String : D
er zugehoerige Buchstabe aus der
codeMap
*/
private
String
getBuchstabe
(
String
morsecode
)
{
// Initialisieren des Rückgabe Strings
String
result
=
null
;
// Loopt duch die Codemap und erstellt daraus ein Set
for
(
Entry
<
String
,
String
>
entry
:
this
.
codeMap
.
entrySet
())
{
// Wenn Value dem Morsecode entspricht, haben wir unseren Buchstaben gefunden und setzen ihn als Result
if
(
entry
.
getValue
().
equals
(
morsecode
))
{
// Loopt duch die codeMap und erstellt daraus ein Set
for
(
Entry
<
String
,
String
>
entry
:
this
.
codeMap
.
entrySet
())
{
if
(
entry
.
getValue
().
equals
(
morsecode
))
{
result
=
entry
.
getKey
();
}
}
...
...
@@ -118,14 +116,14 @@ public class Morsecode {
}
/**
* Der
übergebene String wird in eine
n String Array zerlegt. Als Trennzeichen wird das Leerzeichen genutzt.
* Anschließend wird d
er Array durchlaufen und die Elemente an die Funktion getBuchstabe ü
bergeben um den
* zugeh
ö
rigen Buchstaben zu erhalten.
* Mittels eines StringBuilders werden die Ergebnisse zu einem R
ückgabe String zusammen
gesetzt.
* Wenn kein zugeh
ö
riger Buchstabe in der codeMap gefunden wurde, wird das Zeichen ignoriert da es bei der
* Der
uebergebene String wird in ei
n String Array zerlegt. Als Trennzeichen wird das Leerzeichen genutzt.
* Anschließend wird d
as Array durchlaufen und die Elemente an die Funktion getBuchstabe ue
bergeben um den
* zugeh
oe
rigen Buchstaben zu erhalten.
* Mittels eines StringBuilders werden die Ergebnisse zu einem R
ueckgabe String zusammen
gesetzt.
* Wenn kein zugeh
oe
riger Buchstabe in der codeMap gefunden wurde, wird das Zeichen ignoriert da es bei der
* Enigma nicht vorhanden war.
*
* @param input : String : Zu konve
n
tierender Morsecode
* @param input : String : Zu konve
r
tierender Morsecode
* @return String : Der in Text konvertierte Morsecode
*/
public
String
convertMorsecodeToBuchstabe
(
String
input
)
{
...
...
@@ -134,17 +132,14 @@ public class Morsecode {
String
[]
morsecodes
=
input
.
split
(
" "
);
// Durch alle char im übergebenen String loopen
for
(
String
morsecode
:
morsecodes
)
{
// Wenn der char in der codeMap enthalten ist, an den Rückgabe String anheften, ansonsten nichts ignorieren.
// Durch alle char im uebergebenen String loopen
for
(
String
morsecode
:
morsecodes
)
{
buchstabe
=
this
.
getBuchstabe
(
morsecode
);
if
(
buchstabe
!=
null
)
{
if
(
buchstabe
!=
null
)
{
sb
.
append
(
buchstabe
);
}
}
// Gibt den konvertierten String zurück
return
sb
.
toString
();
}
}
src/main/java/projekt/enigma/model/Reflektor.java
View file @
0d0862d9
package
projekt.enigma.model
;
/**
* TODO: Dokumentation aktuallisieren
* Klasse Reflektor
* <br>
* Der Reflektor nimmt einen Buchstaben der Klasse Walze entgegen und und
k
odiert diesen.
* Der
k
odierte Buchstabe wird an die Klasse Walze wieder zurückgegeben.
* Der Reflektor nimmt einen Buchstaben der Klasse Walze entgegen und und
c
odiert diesen.
* Der
c
odierte Buchstabe wird an die Klasse Walze wieder zurückgegeben.
* <br>
* Prinzipiell verh
ä
lt sich die Klasse Reflektor wie die Klasse Walze, außer das sie sich
* nach Bet
ä
tigung einer Taste nicht dreht (quasi starr montiert ist) und sie gibt keine Signale
* an andere Walzen zum
d
rehen.
* Prinzipiell verh
ae
lt sich die Klasse Reflektor wie die Klasse Walze, außer das sie sich
* nach Bet
ae
tigung einer Taste nicht dreht (quasi starr montiert ist) und sie gibt keine Signale
* an andere Walzen zum
D
rehen.
*/
public
class
Reflektor
{
/**
* Funktion codiere
* <br>
* 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.
* Durchsucht den String alphabet nach der Position des mitgegebenen Buchstabens und
* gibt den Character an der entsprechenden Position im String reflektor zurueck.
*
* @return
WALZE_REFLEKTOR[iPositionReflektor]: Character: Der k
odierte Buchstabe aus dem Reflektor
* @return
char : Der c
odierte Buchstabe aus dem Reflektor
*/
public
char
codiere
(
Character
buchstabe
)
{
// alphabet : String mit den Werten des Alphabeths (26 Werte)
String
alphabet
=
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
;
// reflektor : String mit den Werten des Reflektors (26 Werte)
String
reflektor
=
"EJMZALYXVBWFCRQUONTSPIKHGD"
;
...
...
src/main/java/projekt/enigma/model/Walze.java
View file @
0d0862d9
package
projekt.enigma.model
;
/**
* TODO: Dokumentation aktuallisieren
* <p>
* Klasse Walze
* <br>
* Erzeugt ein Objekt des Typs Walze mit den Eigenschaften:
* <br>
* 1. Walzennummer (Die Walze enth
ä
lt die 26 Buchstaben des Alphabeths und codiert diese.
*
5
verschiedene Walzen stehen zur Auswahl, die jeweils verschieden die Buchstaben des Alphabeths
*
paarweise
vertauschen)
* 1. Walzennummer (Die Walze enth
ae
lt die 26 Buchstaben des Alphabeths und codiert diese.
*
fuenf
verschiedene Walzen stehen zur Auswahl, die jeweils verschieden die Buchstaben des Alphabeths
* vertauschen)
* <br>
* 2. Ringstellung (Umspringpunkt der Walze wird festgelegt. Der Umspringpunkt bestimmt
* den Drehzeitpunkt der linken Nachbarwalze)
* den Drehzeitpunkt der linken Nachbarwalze
.
)
*/
public
class
Walze
{
//region Variablen
/**
* Die Anzahl der get
ä
tigten Walzen Drehungen
* Die Anzahl der get
ae
tigten Walzen Drehungen
* TODO: Wieder auf private setzen
*/
public
int
turns
;
/**
* Das String Array aller bekannter aktuelle
n
Walzen
* Das String Array aller bekannter aktuelle
r
Walzen
*/
private
String
[]
walzen
;
/**
* alphabet : String
dass die Buchstaben des Alphabets enthaelt
* alphabet : String
: enthaelt die Buchstaben des Alphabets
*/
private
String
alphabet
;
/**
...
...
@@ -35,9 +33,10 @@ public class Walze {
*/
private
char
ringstellung
;
/**
* walzen
n
r : int : Bestimmt, welche Walze genutzt wird
* walzen
N
r : int : Bestimmt, welche Walze genutzt wird
*/
private
int
walzenNr
;
//endregion
//region Konstruktor
...
...
@@ -48,7 +47,6 @@ public class Walze {
* @param ringstellung : int : Einstellung des Umsprungpunktes
*/
public
Walze
(
int
walzenNr
,
int
ringstellung
)
{
this
.
walzen
=
new
String
[
5
];
this
.
walzen
[
0
]
=
"EKMFLGDQVZNTOWYHXUSPAIBRCJ"
;
this
.
walzen
[
1
]
=
"AJDKSIRUXBLHWTMCQGZNPYFVOE"
;
...
...
@@ -61,33 +59,34 @@ public class Walze {
this
.
setWalzenNr
(
walzenNr
);
this
.
setRingstellung
(
ringstellung
);
}
//endregion
//region Funktionen & Methoden
/**
* Dreht die Walze: Z
ählt die Umdrehungen (Turns) um eine
s hoch oder runter, je nach Drehrichtung.
* Dreht die Walze: Z
aehlt die Umdrehungen (turns) um ein
s hoch oder runter, je nach Drehrichtung.
* <p>
* Ueberprueft, ob der Umspringpunkt der Walze nach der Drehung erreicht wurde.
*
* @param richtung : int : 1 dreht die Walze weiter und -1 dreht sie einen Schritt zur
ü
ck
* @param richtung : int : 1 dreht die Walze weiter und -1 dreht sie einen Schritt zur
ue
ck
* @return checkRing : boolean : gibt true zurueck wenn der Umspringpunkt erreicht wurde
* TODO: Doku
*/
public
boolean
dreheWalze
(
int
richtung
)
{
boolean
checkRing
=
false
;
int
korrekt
o
rFaktor
=
0
;
int
korrekt
u
rFaktor
=
0
;
if
(
richtung
==
-
1
||
richtung
==
1
)
{
if
(
(
richtung
==
-
1
)
||
(
richtung
==
1
)
)
{
if
(
richtung
==
1
)
{
this
.
turns
++;
}
else
if
(
richtung
==
-
1
)
{
korrekt
o
rFaktor
=
1
;
korrekt
u
rFaktor
=
1
;
this
.
turns
--;
}
// gleicht die Ringstellung mit der aktuellen Position ab
if
((
this
.
alphabet
.
indexOf
(
this
.
getPosition
())
+
korrektorFaktor
)
%
26
==
this
.
alphabet
.
indexOf
(
this
.
ringstellung
))
{
if
((
this
.
alphabet
.
indexOf
(
this
.
getPosition
())
+
korrekturFaktor
)
%
26
==
this
.
alphabet
.
indexOf
(
this
.
ringstellung
))
{
checkRing
=
true
;
}
}
...
...
@@ -96,34 +95,32 @@ public class Walze {
}
/**
* Codiert den mitgegebenen Buchstaben anhand
d
er gewaehlten Walze.
* Codiert den mitgegebenen Buchstaben anhand er gewaehlten Walze.
*
* @param buchstabe : char : Buchstabe, der verschluesselt werden soll
* @return
buchstabe :
char : verschluesselter Buchstabe
* @return char : verschluesselter Buchstabe
*/
public
char
codiere
(
char
buchstabe
)
{
return
this
.
fetchWalze
().
charAt
((
this
.
alphabet
.
indexOf
(
buchstabe
)
+
this
.
turns
)
%
26
);
}
/**
* Decodiert den mitgegebenen Buchstaben
mit Hilfe der (verschobenen) Walze
* Decodiert den mitgegebenen Buchstaben
anhand des Alphabets.
*
* @param buchstabe : char : Buchstabe, der decodiert werden soll
* @return
buchstabe :
char : decodierter Buchstabe
* @return char : decodierter Buchstabe
*/
public
char
codiere2
(
char
buchstabe
)
{
return
this
.
alphabet
.
charAt
((
this
.
fetchWalze
().
indexOf
(
buchstabe
)
-
this
.
turns
+
260
)
%
26
);
}
/**
* Holt den korrekten String zu der Walze
*
* @return walze : Character[] : gibt die gewaehlte Walze zurueck
* @return String : Gibt den Verschluesselunngsstring der ausgewaehlten Walze zurueck.
*/
private
String
fetchWalze
()
{
return
walzen
[
walzenNr
];
}
//endregion
//region Setter
...
...
@@ -143,11 +140,11 @@ public class Walze {
/**
* Setzt die Initiale Ringstellung der Walze.
* Es sind nur Zahlen von 1 - 26 zugelassen.
* <
p
>
* <
br
>
* Die Ringstellung wird zum char umgewandelt.
* Im Fehlerfall wird die Ringstellung standardmaessig auf 'Z' gesetzt.
*
* @param ringstellung : int : Punkt an dem die
W
alze umspringt
* @param ringstellung : int : Punkt an dem die
Nachbarw
alze umspringt
*/
public
void
setRingstellung
(
int
ringstellung
)
{
if
((
ringstellung
>
0
)
&&
(
ringstellung
<=
26
))
{
...
...
@@ -159,9 +156,8 @@ public class Walze {
/**
* * TODO: Funktionsname hat sich geändert
* Gibt die Grundeinstellung der Walze ein. Nur Buchstaben von A - Z sind zugelassen.
* Buchstaben werden automatisch in Grossbuchstaben umgewandelt.
* Ist die Grundeinstellung nicht 'A', wird die Methode dreheWalze() aufgerufen.
* Stellt die Grundeinstellung der Walze ein.
* Ermittelt, wie oft die Walze gedreht werden muss, bis die Grundeinstellung erreicht ist.
*
* @param buchstabe : Character : Einstellung der Walze
*/
...
...
@@ -172,9 +168,9 @@ public class Walze {
//region Getter
/**
* Gibt den
Character zurueck, der aktuell in der Walze eingestellt ist
* Gibt den
Buchstabe zurueck, der aktuell in der Walze eingestellt ist.
*
* @return
Character am Index 0 des (verschobenen) Alphabets zurueck
* @return
char : Ermittelte stelle im Alphabet, anhand der aktuellen Anzahl der Drehungen
*/
public
Character
getPosition
()
{
return
this
.
alphabet
.
charAt
(
turns
%
26
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment