ИИ во с виртуальной картой вроде никогда не работал, да и держать копию или делать на ней эксперименты это, простите меня, бред — падение производительности будет слишком велико, а пользы минимум
Оригинальный ИИ пытается посторить дорогу методом сближения двух концов с использованием метода случайного строительства, именно поэтому у него получаются такие извороты, что диву даёшся, когда например он строит автодорогу до диагонали, а потом обкладывает её змейкой из самых дешевых ж/д мостов и пускает мо ней поезд
Скрывать это на виртуальной карте нет смысла именно потому, что такой метод был выбран разработчиками для создание эффетка «постепенного» сторительства с использованием минимального количества ресурсов
По-хорошему, ИИ должен сперва спланировать трассу на существующей карте, расчитать её эффективность и доходность, после чего внести необходимые изменения для уменьшения её стоимости и/или поднятия эффективности за счёт более дорого строительства, а также произвести оптимизации и флуктуации для большего разнообразия
(например случайный выбор с какой стороны обойти препядствие, если оба пути практически равноценны)
После этого он должен выкупить необходимую землю и начать постепенное строительство.
Кстати, комп не может использовать трассу оппонента
и что означает «количество этажей»?
Вобщем, анализ предложенной логики показал, что она частично неверна
(на сколько % лучше промолчу)
А вот как, с моей точки зрения, должен проводится расчёт: берем алгоритм для поиска пути
A*, при этом можем как-то учитывать варианты с изменением ландшафта с введением для них второй стоимости (первая это длина маршрута, а лучше время на его преодоление), однако тут надо либо пренебречь стоимостью строительства, либо как-то сохранить несколько маршрутов с последующим выбором, либо же сделать формулу расчёта ценности с учетом сразу многих параметров (длина×стоимость)
В принципе, тут мы уже имеем готовый маршрут, можем еще обработать для придания лучшего вида или использования альтернативных методов строительства, можем также найти еще маршруты с примерно равной ценностью.
После этого полученный маршрут (возьмем первый (лучший) необработанный) сравним с маршрутами в других областях карты для выбора что же мы будем строить, альтернативы можно сохранить на будущее. Выберем, что мы будет строить сейчас и действуем по принципу выкупки земли и постепенным прокладыванием по ней трассы
Этот алгоритм теоритически можно расширить до создания транспортных сетей, однако я не знаю как тут проверять или изменять существующую часть трассы, чтобы по ней можно было пустить дополнительные поезда (с автотраспортом тут проще) — можно в принципе поначалу строить только одноколейные маршруты точка-точка, а потом двухколейные маршруты с вставкой в них развилок и расширением станций, чтобы те могли принимать больше поездов (тут надо вводить алгоритмы с применением к примеру одной платформы для одного типа груза, различать погрузочные и разгрузочные платформы, строить станции с предварительно сконструированными входами/выходами и выбирать между типами станций «terminus» и «ro-ro»)
Единственная проблема с ИИ в том, что это всё довольно сложно (и долго) реализовывать.