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
            });
        }
Esempio n. 2
0
        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());
        }