Цель состоит в том, чтобы иметь объект, представляющий двумерную коллекцию булевых значений.Как представить шаблон в области прямоугольника
У меня есть точка сетки Размер (х, у)
Объекты размещаются на сетке в месте точки (х, у) с оценками Rectangle (новый размер (ш, ч) , new Point (x, y))
Целью является представление объекта как bool [,], где индекс местоположения массива представляет смещение в границах прямоугольника.
Возможно, я немного подумал об этом, поэтому объясню, что я использовал Rectangle из-за очень удобного IntersectsWith.
Объектам будет разрешено перемещать одну единицу в любом направлении, но им не разрешается перемещаться в местоположение, уже занятое другим объектом.
Я хотел бы торцевое использование быть что-то вроде:
Pattern p1 = new Pattern(Point location1, bool[,] pattern);
Pattern p2 = new Pattern(Point location2, bool[,] pattern);
if(p1.Intersects(p2))
throw new ...
я только заботиться о закономерности перекрывается. Я бы хотел, чтобы общий размер и форма шаблона изменялись.
Я пытаюсь придумать способ переопределить шаблон с определенными правилами, основанными на общей площади.
Я ищу совет, чтобы наилучшим образом подойти к этой проблеме.
Возможно, этот вопрос подходит лучше на http://programmers.stackexchange.com – InferOn
Есть ли у вашей проблемы визуальное представление или вы используете только концепцию Rectangle? – TaW
Итак, если Rectangles пересекаются, то формы ** могут ** пересекаться. Подход Rectangle - это хороший способ быстро определить, нужно ли вам дополнительно проверять. Для окончательного определения вам придется перебирать массивы и посмотреть, установлены ли для одного из одинаковых местоположений значение true. Очевидно, вам нужно явно проверить, чтобы убедиться, что вы не превышаете строки/столбцы другой формы, если два шаблона имеют «ограничивающие прямоугольники» разного размера. –