Esempio n. 1
0
 public void ConfigureMachine(MachineArgs args)
 {
     _rotors[0] = new SpinningRotor(args.RotorOneArgs.Number, args.RotorOneArgs.StartPosition);
     _rotors[1] = new SpinningRotor(args.RotorTwoArgs.Number, args.RotorTwoArgs.StartPosition);
     _rotors[2] = new SpinningRotor(args.RotorThreeArgs.Number, args.RotorThreeArgs.StartPosition);
     foreach (var pair in args.LettersToSwap)
     {
         _plugboard.SwapLettersInPlugBoard(pair.Item1, pair.Item2);
     }
 }
Esempio n. 2
0
 private void EncodeButton_Click(object sender, RoutedEventArgs e)
 {
     if (_awaitingForPair != null)
     {
         MessageBox.Show("One letter in plugboard is not connected to another");
     }
     else
     {
         var firstRotorNumber    = GetRotorNumber(FirstRotorNumber.Text);
         var firstRotorPosition  = Convert.ToByte(FirstRotorPosition.Text[0] - 65);
         var secondRotorNumber   = GetRotorNumber(SecondRotorNumber.Text);
         var secondRotorPosition = Convert.ToByte(SecondRotorPosition.Text[0] - 65);
         var thirdRotorNumber    = GetRotorNumber(ThirdRotorNumber.Text);
         var thirdRotorPosition  = Convert.ToByte(ThirdRotorPosition.Text[0] - 65);
         var lettersToSwap       = new List <Tuple <char, char> >();
         foreach (var pair in _pairs)
         {
             lettersToSwap.Add(new Tuple <char, char>(pair.Value.Item1.Content.ToString()[0], pair.Value.Item2.Content.ToString()[0]));
         }
         var args = new MachineArgs
         {
             RotorOneArgs = new RotorArgs
             {
                 Number        = firstRotorNumber,
                 StartPosition = firstRotorPosition
             },
             RotorTwoArgs = new RotorArgs
             {
                 Number        = secondRotorNumber,
                 StartPosition = secondRotorPosition
             },
             RotorThreeArgs = new RotorArgs
             {
                 Number        = thirdRotorNumber,
                 StartPosition = thirdRotorPosition
             },
             LettersToSwap = lettersToSwap
         };
         _machine.ConfigureMachine(args);
         EncodedText.Text = _machine.EncodeString(NotEncodedText.Text.ToUpper());
     }
 }