From 357c983b6c251ece6818728f1fea1238772a299b Mon Sep 17 00:00:00 2001 From: FloriN <lisa.nicomisch@tutamail.com> Date: Thu, 28 Nov 2019 11:51:42 +0100 Subject: [PATCH] Update Klasse Walze / Walzeneinstellung --- src/main/java/Enigma/model/Walze.java | 35 +++++++++++++-------------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/src/main/java/Enigma/model/Walze.java b/src/main/java/Enigma/model/Walze.java index 36ac233..f0116fb 100644 --- a/src/main/java/Enigma/model/Walze.java +++ b/src/main/java/Enigma/model/Walze.java @@ -32,6 +32,7 @@ public class Walze { private int ringstellung; private int walzennr; private int iPositionBuchstabe; + private int verschoben; private Character[] walze; @@ -42,10 +43,11 @@ public class Walze { * @param ringstellung : Character : Einstellung des Notch */ public Walze(int walzennr, int ringstellung) { - this.walze = new Character[25]; + this.walze = new Character[26]; this.walzennr = walzennr; this.buchstabe = 'A'; this.iPositionBuchstabe = 0; + this.verschoben = 0; this.ringstellung = ringstellung; } @@ -133,56 +135,53 @@ public class Walze { this.iPositionBuchstabe += 1; } - checkRing = this.iPositionBuchstabe == getRingstellung(); + checkRing = this.iPositionBuchstabe == (getRingstellung() - 1); return checkRing; } + public int verschiebung(int i) { + + if((i + iPositionBuchstabe) > 26) { + int verschoben = (i + iPositionBuchstabe) - 26 ; + } else { + verschoben = i + iPositionBuchstabe; + } + + return verschoben; + } - //codiere(char buchstabe) return char => Gibt den verschlüsselten Buchstaben zurück /** * Chiffriert den Buchstaben an der Position aus der Methode positionBuchstabe() * anhand der gewaehlten Walze. * - * @param * @return chiffrierterBuchstabe : Character : chiffrierter Buchstabe */ public char codiere(char buchstabe) { - /** - * TODO: contains fragt ab ob der char im Alphabet enthalten ist. Das sollten wir vielleicht noch in eine - * Hilfsfunktion packen. Vielleicht sogar in der Hardware Klasse. - */ - boolean contains = false; + for (int i = 0; i < walzeAlpha.length; i++) { if (walzeAlpha[i].equals(buchstabe)) { - buchstabe = walzenNummer()[i]; - contains = true; + buchstabe = walzenNummer()[verschiebung(i)]; break; } } - if(!contains) { - buchstabe = 'X'; - } return buchstabe; } - //codiere2(char buchstabe) => Gibt den vertauschten Buchstaben zurück (Reverse) - /** * Chiffriert den Buchstaben an der Position aus der Methode positionBuchstabeReverse() * anhand der AlphaWalze. * - * @param * @return codierterBuchstabeRe : Character : chiffrierter Buchstabe */ public char codiere2(char buchstabe) { for (int i = 0; i < walzenNummer().length; i++) { if (walzenNummer()[i].equals(buchstabe)) { - buchstabe = walzeAlpha[i]; + buchstabe = walzeAlpha[verschiebung(i)]; break; } } -- GitLab