Ejemplo n.º 1
0
        public void WorkingTest()
        {
            router.ClearQueues();
            router.MaxTimeForAnswer = new TimeSpan(0, 0, 0, 10);
            ServiceFormat sf = new ServiceFormat();

            router.SendServiceMessage(sf);

            TaskFormat t = new TaskFormat("zveq", 100);

            t.Convolutions.Add(Cryptography.Encryption("zver"));
            t.Convolutions.Add(Cryptography.Encryption("q"));
            t.Convolutions.Add(Cryptography.Encryption("qwerty"));
            t.Convolutions.Add(Cryptography.Encryption("zver31031993"));
            t.StartWord = "q";

            router.SendTask(t);

            TaskFormat task = router.GetTask();

            SearchEngineSolutions fabrica = new SearchEngineSolutions(task);
            AnswerFormat          answer  = fabrica.FindSolution();

            router.SendAnswer(answer);
        }
        /// <summary>
        /// Поиск решения.
        /// </summary>
        /// <returns>
        /// Формат ответа клиента.
        /// </returns>
        public AnswerFormat FindSolution()
        {
            TaskFormat workTask = this.currentTask;

            Word workWord = new Word();

            workWord.SetWord(this.currentTask.StartWord);

            AnswerFormat answer = new AnswerFormat();

            while (workTask.NumberOfWordsThatNeedToBeIterated > 0)
            {
                foreach (string convolution in workTask.Convolutions)
                {
                    if (Cryptography.Encryption(workWord.ToString()) == convolution)
                    {
                        ConvolutionSolution convolutionSolution = new ConvolutionSolution(
                            workWord.ToString(), convolution);
                        answer.AddSolution(convolutionSolution);
                        answer.Task = this.currentTask;
                        Console.WriteLine("Найдено решение:" + convolutionSolution);
                    }
                }

                workWord.GoToNextWord();
                workTask.NumberOfWordsThatNeedToBeIterated--;
            }

            return(answer);
        }
Ejemplo n.º 3
0
        public void SendingAnswerTest()
        {
            AnswerFormat answer = new AnswerFormat();

            answer.Solution = new[] { new ConvolutionSolution("qwe", "123") };
            router.SendAnswer(answer);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Метод подбора пароля к свертке.
        /// </summary>
        /// <param name="threadName">
        /// Имя потока, в котором запускается метод.
        /// </param>
        public void Brut(object threadName)
        {
            while (true)
            {
                TaskFormat task;
                try
                {
                    task = this.clientRouter.GetTask();
                }
                catch
                {
                    Console.WriteLine("Thread " + threadName.ToString() + ": Перебор закончен. Заданий от сервера не поступает.");
                    break;
                }

                Console.WriteLine(threadName + ". Задание получено: " + task);

                SearchEngineSolutions searchEngineSolutions = new SearchEngineSolutions(task);
                AnswerFormat          answer = searchEngineSolutions.FindSolution();

                Console.WriteLine(threadName + ".Задание отработано: " + task);
                this.clientRouter.SendAnswer(answer);
            }

            // ReSharper disable FunctionNeverReturns
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Unload our layer content
        /// </summary>
        public override void UnloadContent()
        {
            if (WhiteBrush != null)
            {
                WhiteBrush.Dispose();
            }
            WhiteBrush = null;

            if (LightGreenBrush != null)
            {
                LightGreenBrush.Dispose();
            }
            LightGreenBrush = null;

            if (RedBrush != null)
            {
                RedBrush.Dispose();
            }
            RedBrush = null;

            if (QuestionBrush != null)
            {
                QuestionBrush.Dispose();
            }
            QuestionBrush = null;

            if (CorrectBrush != null)
            {
                CorrectBrush.Dispose();
            }
            CorrectBrush = null;

            if (IncorrectBrush != null)
            {
                IncorrectBrush.Dispose();
            }
            IncorrectBrush = null;

            if (BlackBrush != null)
            {
                BlackBrush.Dispose();
            }
            BlackBrush = null;

            if (QuestionFormat != null && !QuestionFormat.IsDisposed)
            {
                QuestionFormat.Dispose();
            }
            if (AnswerFormat != null && !AnswerFormat.IsDisposed)
            {
                AnswerFormat.Dispose();
            }
            if (KeyIndicatorFormat != null && !KeyIndicatorFormat.IsDisposed)
            {
                KeyIndicatorFormat.Dispose();
            }
        }
Ejemplo n.º 6
0
        public void AddingSolutionTest()
        {
            AnswerFormat        answer   = new AnswerFormat();
            ConvolutionSolution solution = new ConvolutionSolution("123", "321");

            Assert.AreEqual(0, answer.Solution.Length);
            answer.AddSolution(solution);
            Assert.AreEqual(1, answer.Solution.Length);
            solution = new ConvolutionSolution("1231", "3211");
            answer.AddSolution(solution);
            Assert.AreEqual(2, answer.Solution.Length);
        }
Ejemplo n.º 7
0
        public void GettingAnswerTest()
        {
            AnswerFormat answer = new AnswerFormat();

            answer.Solution = new[] { new ConvolutionSolution("qwe", "00e0a9dff334507bd9526906c01d3eee") };
            router.ClearQueues();
            router.SendAnswer(answer);

            AnswerFormat gettinganswer = router.GetAnswer();

            Assert.AreEqual(answer.Solution[0].Convolution, gettinganswer.Solution[0].Convolution);
            Assert.AreEqual(answer.Solution[0].Word, gettinganswer.Solution[0].Word);

            Assert.AreEqual(answer.Task, gettinganswer.Task);
        }
        public void SearchEngineSolutionsInitializatedCorrectly()
        {
            TaskFormat task = new TaskFormat();

            task.Convolutions.Add(Cryptography.Encryption("zzzzzz"));

            SearchEngineSolutions searchEngineSolutions = new SearchEngineSolutions(task);
            AnswerFormat          answerFormat          = searchEngineSolutions.FindSolution();

            Assert.AreEqual(answerFormat.Solution.Length, 0);

            task.NumberOfWordsThatNeedToBeIterated = 100;
            task.Convolutions.Add(
                Cryptography.Encryption(Alphabet.GetSymbol(99).ToString(CultureInfo.InvariantCulture)));
            searchEngineSolutions = new SearchEngineSolutions(task);
            answerFormat          = searchEngineSolutions.FindSolution();
            Assert.AreEqual(answerFormat.Solution.Length, 1);

            Assert.Throws <InitializationOfSearchEngineSolutionsWasFailedException>(
                () => searchEngineSolutions = new SearchEngineSolutions(null));
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Прослушивание ответов клиента.
        /// </summary>
        private void AnswersListner()
        {
            while (true)
            {
                // блок обработки результатов клиента
                AnswerFormat af = this.taskManagerRouter.GetAnswer();

                foreach (ConvolutionSolution cs in af.Solution)
                {
                    Console.WriteLine("найдено решение : " + cs.Word + " : " + cs.Convolution);
                    this.dispatchingData.Convolutions.Remove(cs.Convolution);
                }

                if (af.Task != null)
                {
                    this.dispatchingData.RemoveTaskFromProgressedList(af.Task);
                }
            }

            // ReSharper disable FunctionNeverReturns
        }
Ejemplo n.º 10
0
        public void SetTaskTest()
        {
            AnswerFormat answer = new AnswerFormat();

            answer.Task = new TaskFormat("a", 100000);
        }
Ejemplo n.º 11
0
        /// <summary>
        /// Load our layer content
        /// </summary>
        public override void LoadContent()
        {
            if (WhiteBrush != null)
            {
                WhiteBrush.Dispose();
            }
            WhiteBrush = new SolidColorBrush(Surface.RenderTarget2D, SharpDX.Color.White);

            if (LightGreenBrush != null)
            {
                LightGreenBrush.Dispose();
            }
            LightGreenBrush = new SolidColorBrush(Surface.RenderTarget2D, SharpDX.Color.LightGreen);

            if (RedBrush != null)
            {
                RedBrush.Dispose();
            }
            RedBrush = new SolidColorBrush(Surface.RenderTarget2D, SharpDX.Color.Red);

            if (QuestionBrush != null)
            {
                QuestionBrush.Dispose();
            }
            QuestionBrush = new SolidColorBrush(Surface.RenderTarget2D, new Color(MM_Repository.Training.QuestionTextColor.R, MM_Repository.Training.QuestionTextColor.G, MM_Repository.Training.QuestionTextColor.B, MM_Repository.Training.QuestionTextColor.A));

            if (CorrectBrush != null)
            {
                CorrectBrush.Dispose();
            }
            CorrectBrush = new SolidColorBrush(Surface.RenderTarget2D, new Color(MM_Repository.Training.CorrectAnswerColor.R, MM_Repository.Training.CorrectAnswerColor.G, MM_Repository.Training.CorrectAnswerColor.B, MM_Repository.Training.CorrectAnswerColor.A));

            if (IncorrectBrush != null)
            {
                IncorrectBrush.Dispose();
            }
            IncorrectBrush = new SolidColorBrush(Surface.RenderTarget2D, new Color(MM_Repository.Training.IncorrectAnswerColor.R, MM_Repository.Training.IncorrectAnswerColor.G, MM_Repository.Training.IncorrectAnswerColor.B, MM_Repository.Training.IncorrectAnswerColor.A));

            if (BlackBrush != null)
            {
                BlackBrush.Dispose();
            }
            BlackBrush = new SolidColorBrush(Surface.RenderTarget2D, SharpDX.Color.Black);


            if (QuestionFormat != null && !QuestionFormat.IsDisposed)
            {
                QuestionFormat.Dispose();
            }
            QuestionFormat = new TextFormat(Surface.FactoryDirectWrite, MM_Repository.Training.QuestionFont.Name, MM_Repository.Training.QuestionFont.Size)
            {
                TextAlignment = TextAlignment.Leading, ParagraphAlignment = ParagraphAlignment.Near
            };

            if (AnswerFormat != null && !AnswerFormat.IsDisposed)
            {
                AnswerFormat.Dispose();
            }
            AnswerFormat = new TextFormat(Surface.FactoryDirectWrite, MM_Repository.Training.AnswerFont.Name, MM_Repository.Training.AnswerFont.Size)
            {
                TextAlignment = TextAlignment.Leading, ParagraphAlignment = ParagraphAlignment.Near
            };


            if (KeyIndicatorFormat != null && !KeyIndicatorFormat.IsDisposed)
            {
                KeyIndicatorFormat.Dispose();
            }
            KeyIndicatorFormat = new TextFormat(Surface.FactoryDirectWrite, MM_Repository.OverallDisplay.KeyIndicatorLabelFont.Name, MM_Repository.OverallDisplay.KeyIndicatorLabelFont.Size)
            {
                TextAlignment = TextAlignment.Leading, ParagraphAlignment = ParagraphAlignment.Near
            };
        }