Обновлено:

На этой странице

Дороги, гавани и морская торговля — v0.16.0

Продолжены ресурсные сети рубежа4 и морские системы5.1. Общий расчёт land-sea-trade-network-v1 используется ресурсами города, производственными требованиями, работами, международными договорами и интерфейсом. Полный раздел5.1 и MVP остаются в работе.

В v0.21.0 общая сеть расширена воздушными ресурсными связями, с новой схемой38 и отдельными машинными доказательствами. Описание ниже фиксирует исходный морской этап0.16.0.

Что доступно в игре

Нативная «Гавань» BLDG52 включена в обычное строительство: 30 щитов, содержание1 зол./ход, технология1 «Строительство лодок», прибрежное размещение и исходный пищевой эффект. Требования, стоимость, строительство, очередь, продажа и портрет проходят общие механизмы зданий. Название «Порт» у другого здания само по себе морскую торговлю не разрешает. ИИ может заказать гавань, когда собственные прибрежные города разделены сухопутными сетями.

На карточке ресурсов города показаны наличие гавани и связь со столицей. Наведение поясняет доступность моря/океана и причины возможного разрыва. Координаты скрытых блокирующих кораблей интерфейс не раскрывает.

Ресурс на своём участке суши требует подключения дорогой либо железной дорогой и известной технологии обнаружения. Две действующие гавани соединяют сухопутные сети через доступную воду. После продажи гавани или перемещения блокирующего корабля ресурсные требования и назначения жителей пересчитываются без дополнительного окончания хода. Международный ресурсный договор при потере связи завершается общим обработчиком соглашений; экспорт последней копии и импорт продолжают использовать прежние правила.

Проверка правил оригинала

Исследуется предоставленный Civ3Conquests.exe, SHA256 c40583d707af7abd9b8568e2ed5a4f117f27a775dca617c8d7b873d76772dd6d, версия1.21. Исходные данные профиля устанавливают единственное здание с флагом waterTrade — BLDG52. TECH46 «Мореплавание» содержит0x2000, TECH86 «Магнетизм» —0x4000.

Отчёт фиксирует 13 последовательностей инструкций. Нативная функция0x4ae0c0 проверяет действующее водно-торговое здание и устаревание. При построении морской связи проверяются обе конечные гавани. Функция0x57ee00 читает матрицу связей: с параметром-1 допускает граф любой из сторон, с конкретным владельцем использует только его граф. Вызов проверки связи со столицей передаёт конкретного владельца; исследованный международный вызов передаёт-1.

Полная неизменённая функция0x57ee00 выполнена в Unicorn в105 контролируемых случаях: разные владельцы, маски графов, запрос конкретной стороны, одинаковый город и отсутствующий указатель. Подставляются структуры городов и матрица; поиск пути этой проверкой не выполняется. Это проверка оригинального машинного предиката, а не полный Windows-сеанс.

При интерпретации проходимости также использованы первичные материалы TradeNetX.cpp и описание Trade Net X. Водный путь требует исследованных клеток, допустимого моря/океана и мирной территории; город может служить каналом без собственной гавани. Враждебный боевой обитатель блокирует конкретную клетку, другие каналы сохраняют связь. Безопасное море от действующего чуда учитывается отдельно от океанской технологии. Проход по мирным дорогам не требует соглашения о праве прохода. Нативный поиск боевого обитателя проверяет положительную атаку или защиту и позволяет отключать проверку видимости; поэтому блокада может повлиять на снабжение, оставаясь скрытой от интерфейса.

Участники международной торговли проверяются по отдельности: нужен хотя бы один целиком допустимый граф. Два неполных графа исследования не склеиваются. Домашнее снабжение проверяется только от имени владельца города.

Архитектура и сохранения

engine/transport-network.mjs строит компоненты сухопутного и водного слоёв. Гавань соединяет слои, город без гавани пропускает водный маршрут, но не подключает к нему свои дороги. Ресурсные месторождения собираются с сухопутных узлов; в исходном профиле разрешённые водные месторождения являются бонусами, а не торгуемыми стратегическими ресурсами или роскошью.

Компоненты кэшируются по состоянию, профилю и владельцу. Точное сравнение дорог, местности, владельцев, исследования, городов, технологий, войн, боевых обитателей и применимых зданий защищает от устаревания при изменениях на месте. Повторные запросы не собирают длинную строку всей карты. Возвращаемый обычному потребителю набор клеток — копия; внешний код не меняет кэш. Случайная последовательность не используется.

Схема34 добавляет transportNetworkModel; контрольное подлинное сохранение опубликованной33 меняет только версию схемы и метаданные модели. Мир, груз, дипломатия, текущие приказы и PRNG сохраняются. Проверяются загрузка после каждого значимого изменения и точное продолжение.

Проверки и ограничения

22 новых проверки ядра покрывают две гавани, независимые Sea/Ocean-права, блокаду и обход, неизвестную воду, войну/мир, каналы, разные карты знаний, экспорт/импорт, разрыв договора, обычное движение корабля с сохранением между командами, активные бесплатные гавани, устаревание/правительство, шов обёрнутой карты и изменяемый кэш. Chromium проверяет реальный экран города, исходный портрет, продажу с подтверждением, немедленную потерю снабжения, скрытую блокаду и экспорт/перезагрузку. Итоги выпуска — release-0160-validation.json.

Открыты точные оригинальные фазы обновления блокады, скрытая национальность, воздушные связи, специальные портовые и пресноводные исключения, оригинальная политика знания дорог и полный Windows-поиск маршрута. Генерация собственного движка и его сохранения не означают импорт текущего мира SAV. Названия объектов в каталоге не означают поддержку всех их специальных флагов.

Воспроизводимые стенды: scripts/verify-transport-network.py (Unicorn), scripts/benchmark-transport-network.mjs и scripts/benchmark-transport-network-ai.mjs. Последний использует приватный снимок опубликованного кода0.15.0 в reference-original/release-0150/, запускает одинаковые команды на одной подготовленной сухопутной карте и сравнивает всё состояние с поправкой только на новую версию схемы/модель. Это не замер пользовательского сохранения.

Контроль ИИ:960 клеток,5 городов,42 юнита,8 одинаковых команд. В первом порядке CPU4,96→2,45с, в обратном прогретом порядке4,56→1,72с; команды, полное состояние и PRNG совпали. Это подготовленная карта без гаваней, а не прогноз ускорения пользовательского хода. Подробные результаты.