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(); // Закрыли поток }
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; } }