예제 #1
0
        public void TestSosdatSv9Si()
        {
            sw.Reset();
            sw.Start();
            for (int i = 0; i < kolRas; i++)
            {
                curM = new Mir(con);
                curM.maxEx = kolObektovMira * 3;//??????
                curM.maxVxodi = curM.maxEx * 5;
                curM.SosdatObekti(kolObektovMira);
                curM.SosdatSlu4Svasi();

            }
            sw.Stop();
            testSosdatSv9siL = ((sw.ElapsedTicks - testSosdatObL) / kolRas);
            Ispit.mir = curM;
        }
예제 #2
0
 public void TestSosdatOb()
 {
     sw.Reset();
     sw.Start();
     for (int i = 0; i < kolRas; i++)
     {
         curM = new Mir(con);
         curM.maxEx = kolObektovMira * 3;//??????
         curM.maxVxodi = curM.maxEx * 5;
         curM.SosdatObekti(kolObektovMira);
     }
     sw.Stop();
     testSosdatObL = sw.ElapsedTicks / kolRas;
 }
예제 #3
0
        protected override void OnPaint(PaintEventArgs e)
        {
            Graphics gr=e.Graphics;

            constants con = new constants();
            int kolObektovMira = 20;
            Mir curM = new Mir(con);
            curM.maxEx = kolObektovMira * 3;//??????
            curM.maxVxodi = curM.maxEx * 5;
            curM.SosdatObekti(kolObektovMira);
            curM.SosdatSlu4Svasi();

            DrawWorld dw = new DrawWorld(curM, gr);

            //gr.DrawLine(new Pen(Color.DarkBlue, 1), 10, 10, 400, 10);
            //gr.DrawLine(new Pen(Color.DarkBlue, 1), 10, 12, 400, 12);
        }
예제 #4
0
        Point startP = new Point(30, 30); // верхний левый угол откуда будут рисоваться объекты мира

        #endregion Fields

        #region Constructors

        public DrawWorld(Mir mir, Graphics graf)
        {
            int y = 1; // условные координаты местоположения объекта
            int x = 1;
            gr = graf;
            curM = mir;
            curP = startP;
            int dlinaGrani = Convert.ToInt32(Math.Sqrt(mir.lastEx)); // длинна вертикальной грани(и горизонтальной, если получится равнобедренный квадрат)
            int sdvigGryas = (dlinaGrani + 1) * 2; // расстояние между объектами. задается таким образом, что бы можно было соеденить связями все объекты большей грани, так что бы между ними был хотя бы пиксель промежутка
            int sdvig = sdvigGryas + radiusO; // общий чистый сдвиг с учетом радиуса объекта
            // Create font and brush for objects
            Font obFont = new Font("Arial", 16);
            SolidBrush obBrush = new SolidBrush(Color.Black);

            for (int co = 0; co <= mir.lastEx; co++)
            {

                if (y > dlinaGrani) // если исчерпали лимит пересечения по вертикали - перемещаемся по горизонтали
                {
                    y = 1;
                    x = x + sdvig;
                }

                curP.X = startP.X + x;
                curP.Y = startP.Y + y;

                gr.DrawEllipse(new Pen(Color.DarkBlue, 2), curP.X, curP.Y, radiusO * 2, radiusO * 2);
                gr.DrawString(co.ToString(), obFont, obBrush, curP.X, curP.Y);

                y = y + sdvig;
            }
        }
예제 #5
0
        //добавляет новый мир
        private void DobavitNoviiMir()
        {
            switch (curEtap)
            {
                case 1://добавляет новый мир и записывает ссылку на него в curM
                    curM = new Mir(con);
                    curM.maxEx = kolObektovMira * 3;//??????
                    curM.maxVxodi = curM.maxEx * 5;
                    curM.SosdatObekti(kolObektovMira);
                    curM.SosdatSlu4Svasi();
                    break;
                case 2:
                    curM = Miri.Values[con.randObj.Next(curMindex)];//добавляет новый мир копией случайного мира от 0 до curMindex
                    break;

            }
        }