예제 #1
0
        //строит список фигур, площадь которых больше некоторой константы
        public FigureList BuildListByConst(int constant)
        {
            MyList = new FigureList();
            Random rnd = new Random();

            while (MyList.Count() < 5)
            {
                int type = rnd.Next(1, 4);
                if (type == 1)
                {
                    int x1 = rnd.Next(0, 25);
                    int y1 = rnd.Next(0, 25);
                    int x2 = rnd.Next(25, 50);
                    int y2 = rnd.Next(25, 50);
                    if (y2 - y1 > constant || x2 - x1 > constant)
                    {
                        MyList.AddByIndex(new Figure(type, x1, y1, x2, y2, rnd.Next(1, 8)), 0);
                    }
                }
                if (type == 3)
                {
                    int x1 = rnd.Next(0, 25);
                    int y1 = rnd.Next(0, 25);
                    int x2 = rnd.Next(0, 15);
                    if (x2 * 6 > constant)
                    {
                        MyList.AddByIndex(new Figure(type, x1, y1, x2, 0, rnd.Next(1, 8)), 0);
                    }
                }
            }
            return(MyList);
        }
예제 #2
0
        //по координатам прямоугольника строит список состоящий из фигур с теми же координатами
        public FigureList CreateByRectangleCoordinates(Figure rectangle)
        {
            if (rectangle.Type != 1)
            {
                throw new ArgumentException();
            }
            Random rnd = new Random();

            MyList = new FigureList();
            while (MyList.Count() < 6)
            {
                int item = rnd.Next(2, 4);
                if (item == 3)
                {
                    MyList.AddLast(new Figure(item, rectangle.XLU,
                                              rectangle.YLU, Math.Abs(rectangle.XRD - rectangle.XLU), 0, rnd.Next(1, 4)));
                }
                else
                {
                    MyList.AddLast(new Figure(item, rectangle.XLU,
                                              rectangle.YLU, rnd.Next(1, 10), rnd.Next(1, 10), rnd.Next(1, 4)));
                }
            }
            return(MyList);
        }
예제 #3
0
        static void Main(string[] args)
        {
            var myList = new FigureList();
            var helper = new Tool();

            helper.MyList = myList;

            //вставки некоторой фигуры в некоторую позицию списка
            //(при вставке учесть существует ли подобный элемент в списке,
            //если да – то заменить существующий, например, может поменяться цвет фигуры);
            myList.AddByIndex(new Figure(1, 2, 3, 4, 5, 6), 0);
            myList.AddByIndex(new Figure(2, 2, 3, 3, 5, 6), 1);
            myList.AddByIndex(new Figure(3, 2, 3, 4, 5, 6), 2);
            myList.Remove(new Figure(1, 2, 3, 4, 5, 6));
            Console.WriteLine("basic methods:");
            helper.Decode();

            //Построить новый список, состоящий из фигур, которые имеют общие точки с некоторым прямоугольником
            myList = helper.CreateByRectangleCoordinates(new Figure(1, 2, 3, 4, 5, 6));
            Console.WriteLine("rectCoordsList:");
            helper.Decode();

            //построение списка по множеству фигур, заданному набором строк в некотором текстовом файле;
            myList = helper.Encode(@"C:\Users\Пользователь\Desktop\TEXT.txt");
            Console.WriteLine("Encode:");
            helper.Decode();

            //Каждый отрезок с координатами(X1, Y1); (X2, Y2) при условии, что X1<>X2 и Y1<> Y2,
            //заменить прямоугольником  некоторого цвета, в противном случае удалить из списка
            helper.Encode(@"C:\Users\Пользователь\Desktop\TEXT.txt");
            myList = helper.LinesToRectangle();
            Console.WriteLine("lineToRectList:");
            helper.Decode();

            //Построить новый список из фигур,
            //площади которых более некоторой константы(задается пользователем в интерактивном режиме).
            Console.WriteLine("Введите констaнту:");
            int n = int.Parse(Console.ReadLine());

            helper.BuildListByConst(n);
            Console.WriteLine("byConstList:");
            helper.Decode();
        }