Example #1
0
        public static void GraphInput(bool[,] adjMatrix, int level) // Вспомогательная функция для записи графа в БД для практики
        {
            string[] paths = new string[3];                         // Три файла, в которых хрнятся графы разной сложности
            paths[0] = "Easy.bin";
            paths[1] = "Medium.bin";
            paths[2] = "Hard.bin";

            string[] floors = Floors(adjMatrix);                                // Получили ярусы

            PracticeGraph practiceGraph = new PracticeGraph(floors, adjMatrix); // Создали объект с информацией о графе

            FileStream      f  = new FileStream(paths[level], FileMode.Open);   // Открыли нужный по сложности поток для чтения
            BinaryFormatter bf = new BinaryFormatter();

            //PracticeGraph[] practiceGraphArr = new PracticeGraph[1]; // Использовалось для добавления первого графа
            //practiceGraphArr[0] = practiceGraph;

            PracticeGraph[] pArr = (PracticeGraph[])bf.Deserialize(f); // Получили то, что уже лежит в файле

            f.Close();

            f = new FileStream(paths[level], FileMode.Create);                     // Открыли поток для перезаписи

            PracticeGraph[] practiceGraphArr = new PracticeGraph[pArr.Length + 1]; // Объявили новый массив

            for (int i = 0; i < practiceGraphArr.Length - 1; i++)                  // Переписали уже имеющиеся значения
            {
                practiceGraphArr[i] = pArr[i];
            }
            practiceGraphArr[practiceGraphArr.Length - 1] = practiceGraph; // Записали добавляемый элемент

            bf.Serialize(f, practiceGraphArr);                             // Записали новый массив

            f.Close();                                                     // Закрыли поток
        }
Example #2
0
        public int level;                                 // Уровень сложности (передается из хозяина)
        private void PracticeForm_Load(object sender, EventArgs e)
        {
            practiceGraph = Controller.GetGraph(level); // Получаем случайный граф из БД
            adjMatrix     = practiceGraph.AdjMatrix;    // Переписали матрицу смежноси
            floors        = practiceGraph.Floors;       // Переписали ярусы

            // Заполнили массив текстбоксов
            floorTextBoxes[0] = ZeroFloorTextBox;
            floorTextBoxes[1] = FirstFloorTextBox;
            floorTextBoxes[2] = SecondFloorTextBox;
            floorTextBoxes[3] = ThirdFloorTextBox;
            floorTextBoxes[4] = FourthFloorTextBox;
            floorTextBoxes[5] = FifthFloorTextBox;
            floorTextBoxes[6] = SixthFloorTextBox;
            floorTextBoxes[7] = SeventhFloorTextBox;

            // Заполнили массив кнопок с ответами
            dataButtons[0] = ShowZeroFloorDataButton;
            dataButtons[1] = ShowFirstFloorDataButton;
            dataButtons[2] = ShowSecondFloorDataButton;
            dataButtons[3] = ShowThirdFloorDataButton;
            dataButtons[4] = ShowFourthFloorDataButton;
            dataButtons[5] = ShowFifthFloorDataButton;
            dataButtons[6] = ShowSixthFloorDataButton;
            dataButtons[7] = ShowSeventhFloorDataButton;

            for (int i = 0; i < floorTextBoxes.Length; i++)
            {
                floorTextBoxes[i].Enabled = false; // Изначально блокируем все
                dataButtons[i].Enabled    = false;
            }

            for (int i = 0; i < floors.Length; i++)
            {
                floorTextBoxes[i].Enabled = true; // Разблокируем столько, сколько ярусов нам пришло из файла
                dataButtons[i].Enabled    = true;
            }
        }