Example #1
0
 private void ValidKey(Position[] key)
 {
     if (key.Length < 2)
         throw new ArgumentException();
     if (key.Length != 4)
         throw new ArgumentException();
     if (key.Max(p => Math.Max(p.Row, p.Column)) != 4)
         throw new ArgumentException();
     
 }
Example #2
0
 protected override void ElementAction(Position tablePosition)
 {
     if (messagePosition != 0 && messagePosition % matrixSize == 0)
         message.Shift += matrixSize;
      decryptMessage[messagePosition++] = message[tablePosition];
 }
Example #3
0
 protected abstract void ElementAction(Position tablePosition);
Example #4
0
 private void TurnPosition(Position position)
 {
     int row = position.Row;
     position.Row = position.Column;
     position.Column = -row;
 }
Example #5
0
 private void TurnPositions(Position[] positions)
 {
     for (var i = 0; i < positions.Length; i++)
         TurnPosition(positions[i]);
 }
Example #6
0
            private void TransformeIndexes(Position[] positions, int order)
            {
                var halfOrder = order / 2;
                var orderEven = order % 2 == 0;
                for (var i = 0; i < positions.Length; i++)
                {
                    positions[i].Row = positions[i].Row - halfOrder;
                    if (orderEven && positions[i].Row >= 0)
                        positions[i].Row = positions[i].Row + 1;

                    positions[i].Column = positions[i].Column - halfOrder;
                    if (orderEven && positions[i].Column >= 0)
                        positions[i].Column = positions[i].Column + 1;
                }
            }
Example #7
0
 public char this[Position position]
 {
     get
     {
         return this[position.Row, position.Column];
     }
     
     set 
     {
         this[position.Row, position.Column] = value;
     }
 }