wasSharp – Diff between revs 7 and 27
?pathlinks?
Rev 7 | Rev 27 | |||
---|---|---|---|---|
Line 185... | Line 185... | |||
185 | foreach (var rotor in rotors) |
185 | foreach (var rotor in rotors) |
|
186 | { |
186 | { |
|
187 | var plug = plugs[Array.IndexOf(rotors, rotor)]; |
187 | var plug = plugs[Array.IndexOf(rotors, rotor)]; |
|
188 | var i = Array.IndexOf(def_rotors[rotor], plug); |
188 | var i = Array.IndexOf(def_rotors[rotor], plug); |
|
189 | if (i.Equals(0)) continue; |
189 | if (i.Equals(0)) continue; |
|
190 | def_rotors[rotor] = Arrays.ConcatenateArrays(new[] {plug}, |
190 | def_rotors[rotor] = Arrays.ConcatenateArrays(new[] { plug }, |
|
191 | Arrays.GetSubArray(Arrays.DeleteSubArray(def_rotors[rotor], i, i), i, -1), |
191 | Arrays.GetSubArray(Arrays.DeleteSubArray(def_rotors[rotor], i, i), i, -1), |
|
192 | Arrays.GetSubArray(Arrays.DeleteSubArray(def_rotors[rotor], i + 1, -1), 0, i - 1)); |
192 | Arrays.GetSubArray(Arrays.DeleteSubArray(def_rotors[rotor], i + 1, -1), 0, i - 1)); |
|
193 | } |
193 | } |
|
Line 194... | Line 194... | |||
194 | |
194 | |
|
Line 223... | Line 223... | |||
223 | // Forward pass through the Enigma's rotors. |
223 | // Forward pass through the Enigma's rotors. |
|
224 | rotate.Invoke(rotors); |
224 | rotate.Invoke(rotors); |
|
Line 225... | Line 225... | |||
225 | |
225 | |
|
226 | // Reflect |
226 | // Reflect |
|
227 | var x = Array.IndexOf(def_reflectors[reflector], l); |
227 | var x = Array.IndexOf(def_reflectors[reflector], l); |
|
Line 228... | Line 228... | |||
228 | l = (x + 1)%2 == 0 ? def_reflectors[reflector][x - 1] : def_reflectors[reflector][x + 1]; |
228 | l = (x + 1) % 2 == 0 ? def_reflectors[reflector][x - 1] : def_reflectors[reflector][x + 1]; |
|
229 | |
229 | |
|
Line 230... | Line 230... | |||
230 | // Reverse the order of the rotors. |
230 | // Reverse the order of the rotors. |
|
Line 263... | Line 263... | |||
263 | { |
263 | { |
|
264 | exp_key += p; |
264 | exp_key += p; |
|
265 | ++i; |
265 | ++i; |
|
266 | continue; |
266 | continue; |
|
267 | } |
267 | } |
|
268 | var m = j%enc_key.Length; |
268 | var m = j % enc_key.Length; |
|
269 | exp_key += enc_key[m]; |
269 | exp_key += enc_key[m]; |
|
270 | ++j; |
270 | ++j; |
|
271 | ++i; |
271 | ++i; |
|
272 | } while (i < input.Length); |
272 | } while (i < input.Length); |
|
273 | return exp_key; |
273 | return exp_key; |
|
Line 390... | Line 390... | |||
390 | }); |
390 | }); |
|
Line 391... | Line 391... | |||
391 | |
391 | |
|
392 | return new string(input); |
392 | return new string(input); |
|
393 | } |
393 | } |
|
394 | } |
- | ||
395 | } |
394 | } |
|
- | 395 | } |