Ejemplo n.º 1
0
    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();
    }
Ejemplo n.º 2
0
        //функция отрисовки начальной сетки
        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);
            }
        }