コード例 #1
0
        public char Encode(char inputCharacter)
        {
            var initialOffset        = _alphabet.IndexOf(inputCharacter);
            var rightRotorOffset     = _rightRotor.EncodeRightToLeft(initialOffset);
            var centerRotorOffset    = _centerRotor.EncodeRightToLeft(rightRotorOffset);
            var leftRotorOffset      = _leftRotor.EncodeRightToLeft(centerRotorOffset);
            var reflectedOffset      = _reflector.Reflect(leftRotorOffset);
            var returnedLeftOffset   = _leftRotor.EncodeLeftToRight(reflectedOffset);
            var returnedCenterOffset = _centerRotor.EncodeLeftToRight(returnedLeftOffset);
            var returnedRightOffset  = _rightRotor.EncodeLeftToRight(returnedCenterOffset);

            return(_alphabet.CharacterAt(returnedRightOffset));
        }
コード例 #2
0
 public void Encode(int offset)
 {
     var characterAt     = _rightAlphabet.CharacterAt(offset);
     var encodedOffset   = _leftAlphabet.IndexOf(characterAt);
     var reflectedOffset = _reflector.Reflect(encodedOffset);
 }