Вначале вы просто стебались над каждой строчкой – разбирая сообщение построчно, вы не видели общего, начало – это вводная информация, на чем строится собственно алгоритм. Привел я это потому, что форум читают разные люди, и не всем сразу понятно понятно, откуда берется начальный материал для размышления.
Вы же заставили защищать флаги в демке – значит что защищать уже есть.
Ну, я исходил из того, что он может появиться отовсюду с любого их этих трех направлений. И просто указал способ записать через какие квадратики обязательно будет проходить противник.
Ну дорога-то у вас имеет статус дороги, а? что мешает один раз на всю карту перекрестки, мосты, и прочее и обозначить их как интерес для зоны обстрела?
Если в квадрате находится объект который закрывает обзор, и тогда и квадрат помечается как закрывающий обзор. Ища выгодную позицию, мы должны найти такое место, где большинство клеток-целей будут видимы. Если в квадрате нет пометки, что она закрывает обзор, то значит любые лучи обзора будут через нее проходить и на обзор она не влияет . Если в квадрате таки есть дерево, то мы считаем что весь квадрат непригоден – и значит будем искать то место где лучше видно цели.
мы будем отбрасывать невыгодные позиции, из-за того что В СУММЕ, из этой позиции будет видно не все, что хотелось, мы будем выбирать те позиции где в сумме мест обстрела больше, те обзор лучше. (а с нуждой в обзоре вы согласились)
Работать будет, поразмыслите еще раз.
Если бы вы прочитали до конца, то увидели, что есть требование на одну пушку не более фиксированного числа квадратов обстрела, которое равно = все квадраты для обстрела делить на число пушек.
Потому и квадраты, чтобы дискретный расчет работал быстрей. Думаю не больше 1 секунды на 1 пушку при размере поля защиты 50х50 и количестве клеток обстрела 152 (по внешнему периметру) – это будет 200х200 метров квадратных
. Компы сейчас гораздо производительней, чем были 10 лет назал в эпоху Win98.
Я бота к линейке писал и был удивлен что он работает очень шустро.
2 400 000 000 Гц *4 = 9 600 000 000 целочисленных операций в секунду.
Ну ведь у вас хранятся данные о том какая высота в каждой точке карты да? Ведь солдаты и танки у вас не проваливаются, так ведь? Таким же образом, только данные передать не в модуль физики, а в другое место.
Загляните на яндекс маркет.
6 ядер пока дорого 100 тыс рублей
http://market.yandex.ru/model.xml?CM...G=10&hid=91019
4 ядра совсем не дорого, всего 6,3 тыс рублей
http://market.yandex.ru/model.xml?CM...G=10&hid=91019
2 ядра это все старые АМД…
Чтобы сектора перекрывались, надо сделать вторую итерацию в алгоритме, она приведена в оригинальном сообщении ниже.
Чтобы прикрывать пушки пехотой и расставлять САУ БТР-ы – это уже _другие_ алгоритмы, но вам приведенный алгоритм не интересен, наверное из за того, что вы не программист, значит смыла смысла мне выдумывать способы размещать алгоритмически все остальное – что бы я ни написал, это будет принято также, как и это сообщение.
У меня к вам просьба покажите это тому, кто думал над тем как размещать пушку алгоритмически