void CrK() { lastCells = new List <int>(); lastCells.Clear(); VsegoKletok = xSize * ySize; GameObject[] AllWalls; int children = box.transform.childCount;// получает все стенки из коробки AllWalls = new GameObject[children]; kletkas = new Kletka[xSize * ySize]; int ZV = 0, childProcess = 0, TermCount = 0; for (int i = 0; i < children; i++) { AllWalls[i] = box.transform.GetChild(i).gameObject; } for (int klobr = 0; klobr < kletkas.Length; klobr++) { if (TermCount == xSize) { ZV++; TermCount = 0; } kletkas[klobr] = new Kletka(); kletkas[klobr].Zapad = AllWalls[ZV]; kletkas[klobr].Yug = AllWalls[childProcess + (xSize + 1) * ySize]; ZV++; TermCount++; childProcess++; kletkas[klobr].Vostok = AllWalls[ZV]; kletkas[klobr].Sever = AllWalls[(childProcess + (xSize + 1) * ySize) + xSize - 1]; } CreateMaze(); }
//функция отрисовки начальной сетки private void Paints(float sizeX, float sizeY, float diskret) { //расчитываем количество клеток countX = (int)(sizeX / diskret); countY = (int)(sizeY / diskret); //создаем массив обьектов класса Kletka pole = new Kletka[countX, countY]; for (int j = 0; j < countY; j++) { for (int i = 0; i < countX; i++) { Kletka kletka = new Kletka(); kletka.index_x = i; kletka.index_y = j; kletka.W = -1; kletka.stena = false; kletka.finish = false; pole[i, j] = kletka; } } //расчитываем размер одной клетки shagX = 800 / countX; shagY = 800 / countY; // рисование var g = CreateGraphics(); var pen = new Pen(Color.Black); //чистим поле g.Clear(Color.White); //рисуем границы g.DrawLine(pen, 0, 0, 0, 800); g.DrawLine(pen, 0, 800, 800, 800); g.DrawLine(pen, 0, 0, 800, 0); g.DrawLine(pen, 800, 800, 800, 0); //рисуем линии for (float i = 1; i < countX; i++) { g.DrawLine(pen, i * shagX, 800, i * shagX, 0); } //рисуем линии for (float i = 1; i < countY; i++) { g.DrawLine(pen, 0, i * shagY, 800, i * shagY); } }