Exemplo n.º 1
0
        /// <summary>
        /// Constructor
        /// Initialises a new Grid Cell with the expected parameters
        /// </summary>
        /// <param name="xref"></param>
        /// <param name="yref"></param>
        /// <param name="status"></param>
        public GridCell(int xref, string yref, GridCellStatus status)
        {
            Condition.Requires(xref).IsGreaterOrEqual(1);
            Condition.Requires(AlphabetHelper.GetAlphabetPositionOfLetter(yref)).IsGreaterOrEqual(1);

            XRef   = xref;
            YRef   = yref;
            Status = status;
            HorizontalBoatCapacity = 0;
            VerticalBoatCapacity   = 0;
        }
Exemplo n.º 2
0
        public void GetLetterFromAlphabetPosition_WhenValidPositionProvided_ExpectCorrectLetterToBeReturned()
        {
            // Arrange
            _returnedLetter = "C";

            // Act
            var result = AlphabetHelper.GetLetterFromAlphabetPosition(3);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(_returnedLetter, result);
        }
Exemplo n.º 3
0
        public void GetAlphabetPositionOfLetter_WhenValidLetterProvided_ExpectCorrectPositionToBeReturned()
        {
            // Arrange
            _returnedPosition = 18;

            // Act
            var result = AlphabetHelper.GetAlphabetPositionOfLetter("R");

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(_returnedPosition, result);
        }
Exemplo n.º 4
0
 public void GetAlphabetPositionOfLetter_WhenLetterIsEmpty_ExpectFormatException()
 {
     // Act
     try
     {
         var result = AlphabetHelper.GetAlphabetPositionOfLetter(String.Empty);
     }
     catch (FormatException ex)
     {
         // Assert
         Assert.IsInstanceOfType(ex, typeof(FormatException));
         throw ex;
     }
 }
Exemplo n.º 5
0
 public void GetLetterFromAlphabetPosition_WhenPositionIsGreaterThanTwentySix_ExpectArgumentOutOfRangeExcpetion()
 {
     // Act
     try
     {
         var result = AlphabetHelper.GetLetterFromAlphabetPosition(27);
     }
     catch (ArgumentException ex)
     {
         // Assert
         Assert.IsInstanceOfType(ex, typeof(ArgumentOutOfRangeException));
         throw ex;
     }
 }
Exemplo n.º 6
0
 public void GetAlphabetPositionOfLetter_WhenLetterIsWhiteSpace_ExpectArgumentException()
 {
     // Act
     try
     {
         var result = AlphabetHelper.GetAlphabetPositionOfLetter("  ");
     }
     catch (FormatException ex)
     {
         // Assert
         Assert.IsInstanceOfType(ex, typeof(FormatException));
         throw ex;
     }
 }
Exemplo n.º 7
0
 public void GetAlphabetPositionOfLetter_WhenLetterIsNull_ExpectArgumentNullException()
 {
     // Act
     try
     {
         var result = AlphabetHelper.GetAlphabetPositionOfLetter(null);
     }
     catch (ArgumentException ex)
     {
         // Assert
         Assert.IsInstanceOfType(ex, typeof(ArgumentNullException));
         throw ex;
     }
 }
Exemplo n.º 8
0
        /// <summary>
        /// Constructor
        /// Initialises a new Grid with the expected parameters and sets up Grid Cells with references
        /// </summary>
        /// <param name="columns"></param>
        /// <param name="rows"></param>
        public Grid(int columns, int rows)
        {
            Condition.Requires(columns);
            Condition.Requires(rows);

            Cells = new GridCell[columns, rows];

            for (int c = 0; c < columns; c++)
            {
                for (int r = 0; r < rows; r++)
                {
                    var xref   = c + 1; // Not zero indexed
                    var yref   = AlphabetHelper.GetLetterFromAlphabetPosition(r + 1).ToString();
                    var status = GridCellStatus.OpenSea;

                    Cells[c, r] = new GridCell(xref, yref, status);
                }
            }
        }
        public string Decrypt(string decryptString)
        {
            var decrypted = Newtonsoft.Json.JsonConvert.DeserializeObject <Response>(decryptString);

            var deciphered = new StringBuilder();

            foreach (var resp in decrypted.Cifrado.ToLower().ToCharArray())
            {
                var alphabetList = AlphabetHelper.CreateAlphabet();

                var positionI = alphabetList.FindIndex(x => x.Equals(resp)) + 1;
                var removed   = alphabetList.Count() - positionI;

                alphabetList.RemoveRange(positionI, removed);

                if (!alphabetList.Any(x => x.Equals(resp)))
                {
                    deciphered.Append(resp);
                    continue;
                }

                for (var i = 0; i <= decrypted.Numero_casas; i++)
                {
                    if (i == decrypted.Numero_casas)
                    {
                        var decif = alphabetList.LastOrDefault();
                        deciphered.Append(decif);
                        continue;
                    }
                    else if (alphabetList.FirstOrDefault().Equals('a') && alphabetList.ToArray().Length == 1)
                    {
                        alphabetList.Remove('a');
                        alphabetList.AddRange(AlphabetHelper.CreateAlphabet());
                        continue;
                    }

                    var remove = alphabetList.LastOrDefault();
                    alphabetList.Remove(alphabetList.LastOrDefault());
                }
            }
            return(deciphered.ToString());
        }