Шаблон проектирования "Стратегия" на практике

В последнее время очень заинтересовался шаблонами проектирования. Даже шпаргалку для себя составил (извините, что ссылаюсь на свой же сайт). Просто для наглядности. По мере изучения - вроде бы всё прозрачно и понятно. Но практика просто "убивает".

Очень заинтересовал паттерн "Стратегия". И вот я решил его как-то попытаться применить. Нашел, как я думаю, прикладное применение. Хочется этим инструментом порешать задачу.

Суть в следующем. Есть онлайн-игра "Forge of Empires". Одной из "проблем" которой - есть оптимальное размещение сущностей. Далее чуть подробно.

1.В игре есть игровое поле, сформированное областями-квадратами с количеством ячеек 4x4

Пример:

Поле игры

Игровое поле, как правило, "не имеет пустот".

2.В игре есть "сущности" разной геометрии, например, 1x1, 2x2, 3x4, 7x5 & etc.

Которые нужно оптимально разместить на поле игры так, чтобы оставшаяся область была максимальной по площади. Это цель

3.В игре некоторые сущности обязательно должны соседствовать с другими типами сущностей

Как пример, некоторые сущности "объекты" должны соседствовать с сущностями "путь". Это условие

4.Сущности "путь" должны быть непрерывны от точки назначения

На рисунке выше - это зелёная область. Это условие

5.Сущности "путь" могут иметь геометрию 1x1, 2x2.

Это условие

6.Сущности "объекты" могут иметь условие (а могут и не иметь)

Должны граничить с сущностями "путями" размером не менее 2x2, или не менее 1x1, или вовсе не обязательно граничить.


Но вот вроде бы и все рамки условий ограничений. Честно говоря, мне на ум приходит просто полный перебор. Но это самое очевидное и самое тупое решение. И самое затратное.

НО ТУТ "стратегией" даже и не пахнет!


Прошу тех, кто хорошо "качает" стратегии - просто расписать, как мне решить данную проблему в рамках сабжа. Ну или хотя бы просто набор "направлений" куда смотреть и чего копать.


Ответы (0 шт):