public static EnigmaSettings Generate() { // Reflector IEnigmaReflector reflector = EnigmaReflectorGenerator.Generate(); // Rotor Settings IEnigmaRotors rotors = EnigmaRotorGenerator.Generate(); // Plugboard IEnigmaPlugboard plugboard = EnigmaPlugboardGenerator.Generate(); return(new EnigmaSettings() { Reflector = reflector, Rotors = rotors, Plugboard = plugboard }); }
private static string RotorRingString(IEnigmaRotors settings) { StringBuilder key = new(); foreach (KeyValuePair <EnigmaRotorPosition, IEnigmaRotor> position in settings.Rotors.Reverse().ToArray()) { key.Append($"{position.Value.RingPosition:00}"); key.Append(KeyDelimiter); } if (settings.Rotors.Count > 0) { key.Remove(key.Length - 1, 1); } return(key.ToString()); }