//строит список фигур, площадь которых больше некоторой константы 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); }
//по координатам прямоугольника строит список состоящий из фигур с теми же координатами 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); }
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(); }