public void MoveWorks()
        {
            var unscrambler = new Unscrambler();

            Assert.Equal("bcdea", unscrambler.Unscramble("bdeac", new[] { SampleOps.Move1To4 }));
            Assert.Equal("bdeac", unscrambler.Unscramble("abdec", new[] { SampleOps.Move3To0 }));
        }
        public void RotateWorks()
        {
            var unscrambler = new Unscrambler();

            Assert.Equal("abcde", unscrambler.Unscramble("bcdea", new[] { SampleOps.Rotate1Left }));
            Assert.Equal("abcde", unscrambler.Unscramble("cdeab", new[] { SampleOps.Rotate8Right }));
        }
        public void RotateByLetterWorks()
        {
            var unscrambler = new Unscrambler();

            Assert.Equal("abcdefgh", unscrambler.Unscramble("ghabcdef", new[] { SampleOps.RotateByB }));
            Assert.Equal("abcdefgh", unscrambler.Unscramble("efghabcd", new[] { SampleOps.RotateByD }));
            Assert.Equal("abcdefgh", unscrambler.Unscramble("habcdefg", new[] { SampleOps.RotateByH }));
        }
Beispiel #4
0
        public string Solve(string[] input)
        {
            var parser      = new OperationParser();
            var steps       = input.Select(line => parser.Parse(line));
            var unscrambler = new Unscrambler();

            return(unscrambler.Unscramble(Password, steps));
        }
Beispiel #5
0
        static void Main(string[] args)
        {
            try
            {
                Input       User       = new Input();
                Unscrambler Unscramble = new Unscrambler();
                int         r; //result of tryparse

                do
                {
                    User.UserChoiceInstructions(Data.UserChoice); //choose to use manual or file input
                    var _userInput = Console.ReadLine() ?? string.Empty;
                    Data.UserChoice = (_userInput == string.Empty || !int.TryParse(_userInput, out r))
                    ? 4 : Convert.ToInt32(_userInput); //If user input is unrecognized, the choice is set to 4 by default

                    do
                    {
                        if (Data.UserChoice == 4 || (Data.UserChoice != 1 || Data.UserChoice != 2 || Data.UserChoice != 3))
                        {
                            User.UserChoiceInstructions(Data.UserChoice); // In case user chose unrecognized option
                            _userInput      = Console.ReadLine() ?? string.Empty;
                            Data.UserChoice = (_userInput == string.Empty || !int.TryParse(_userInput, out r))
                            ? 4 : Convert.ToInt32(_userInput);
                        }
                        Data.RepeatProcess = (Data.UserChoice == 1 || Data.UserChoice == 2 || Data.UserChoice == 3) ? false : true;
                    } while (Data.RepeatProcess);

                    User.UserChoiceInstructions(Data.UserChoice); //When recognized option is chosen, program keeps running
                    Data.UserFileListInput = Console.ReadLine() ?? string.Empty;

                    if (User.AcquireTypeOfUserInpput(Data.UserChoice, Data.UserFileListInput) != null)
                    {
                        Unscramble.MatchesFound(Data.ScrambledWords); //Looks for matches if there wasnt an error in file path case
                        User.RepeatProgram();                         //Does user want to repeat the prorgam?
                    }
                } while (Data.ContinueWordUnscrambler);
                //User.PrintArray(Data.Dictionary);
                //Console.ReadKey();
            }
            catch (Exception ex)
            { Console.WriteLine(Constants.ErrorCaught + ex.Message); }
        }
        public void SwapPositionWorks()
        {
            var unscrambler = new Unscrambler();

            Assert.Equal("abcde", unscrambler.Unscramble("ebcda", new[] { SampleOps.Swap4With0 }));
        }
        public void ScramblingWithSequenceWorks()
        {
            var unscrambler = new Unscrambler();

            Assert.Equal("abcde", unscrambler.Unscramble("abdec", SampleOps.Sequence.Where(op => !(op is RotateByLetter))));
        }
        public void ReverseWorks()
        {
            var unscrambler = new Unscrambler();

            Assert.Equal("edcba", unscrambler.Unscramble("abcde", new[] { SampleOps.Reverse0Through4 }));
        }
        public void SwapLetterWorks()
        {
            var unscrambler = new Unscrambler();

            Assert.Equal("ebcda", unscrambler.Unscramble("edcba", new[] { SampleOps.SwapDWithB }));
        }