Обновлено:

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

Управление городом: губернатор, ускорение и продажа

Исполняемые модели — city-management-v1, city-economy-v4; собственное сохранение — схема 8. Это продолжение задачи 4.1, доступное на основном сайте. Проверки собственной реализации не заменяют контрольных ходов Windows Atlants.

Данные Atlants и область доступности

ПараметрЗначение предоставленного профиляИспользование
GOVT.hurrying0 / 1 / 2Запрет / население / золото
Начальная Община, ID 100Кнопка ускорения объясняет запрет правительства
Монархия, ID 11Принудительный труд
Демократия, ID 32Оплата золотом
RULE.shield_value_gold6Цена одного ускоренного щита
RULE.citizen_shields20Щиты одного потерянного жителя
RULE.hurry_unhappiness20Составляющая недовольства за потерянного жителя
Технология 189, ПереработкаБит 6 TECH.flagsЩиты от продажи обычного сооружения

Проверяемые значения доступны в исходных таблицах.

Не подменяем эти настройки стандартными правительствами и ценой 4 золота базовой Civilization III. Переход правительства в обычной партии ещё не реализован. Поэтому в начальной Общине ускорение запрещено; положительные случаи других правительств сейчас проверяются на явно подготовленных состояниях. Продажа и губернатор доступны в обычной ранней партии.

Общие команды и предпросмотр

HURRY_PRODUCTION, SELL_BUILDING и SET_GOVERNOR проверяются ядром и используются интерфейсом/ИИ. Предпросмотр стоимости вызывает ту же функцию, что проверка команды. Отказ содержит причины, не меняет состояние и не расходует PRNG. Окно подтверждения показывает цену и последствия; отмена не создаёт команду.

Ускорение заполняет запас щитов, но не создаёт юнит/здание немедленно. Выпуск происходит при следующем расчёте города с обычной проверкой требований и населения. Если запас пуст, оплачиваемый дефицит удваивается. Цена золотом — дефицит × 6; населением — округление вверх дефицита / 20. Расходовать больше половины текущего населения нельзя. Беспорядки, сопротивление, завершённый запас, чудо и «Богатство» препятствуют ускорению.

Ускоренные щиты получают ограничение на перенос в большое/малое чудо. Оно переживает сохранение и снимается после расходования запаса. Щиты от Переработки также помечаются ограниченными; точная матрица источников щитов и переключений ещё требует сверки.

Потеря населения добавляет 20 × потерянные жители к счётчику hurryAngerTurns. Число отрицательных ступеней настроения — округление вверх счётчика / 20. После урожая владельца счётчик уменьшается на один, повторное ускорение суммируется. Отрицательные ступени сначала понижают счастливых до спокойных, затем спокойных до недовольных. Формула и момент уменьшения — исполняемая интерпретация с собственными тестами, ещё не подтверждённая выбранным EXE. Наблюдения разных старых патчей о накоплении отличаются; контрольный случай обязателен.

Продажа сооружения

Продаётся одно обычное фактическое здание в городе за ход. Нельзя продать дворец, чудеса, здания пределов размера и бесплатные сооружения. Нулевое содержание само по себе не запрещает продажу обычного здания: это правило нельзя переносить из Civilization V.

Рабочая стоимость — округление вниз исходной стоимости щитов / 8. Известная технология с флагом Переработки добавляет округлённую вниз четверть стоимости в запас щитов. Удаляются действующие эффекты, запись здания и его производственные счётчики; накопленная ранее культура не отнимается. Содержание и занятость пересчитываются общей функцией.

Используется номинальная стоимость BIQ до скидки характеристики, сложности и ускоренного производства. Этот выбор цены, особенности захваченных/бесплатно замещённых зданий и детали сопротивления ещё требуют оригинальных наблюдений. Продажа не изменяет очередь; её требования проверяются обычным образом при завершении заказа.

Губернатор

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

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

Для производства есть предпочтения «Никогда / Обычно / Часто»: нападение, оборона, поселенцы, рабочие, рост, производство, довольство, наука, доход, культура. Ограничения больших/малых чудес сохраняются отдельно, но не открывают ещё неподдержанный контент. Выбор использует общую доступность, стоимость, свойства, местную выработку и оборону. Роли наступления/обороны/поселенца/рабочего берутся из соответствующих битов PRTO, а не выводятся только из боевых чисел. Применение возможно к одному городу, своим городам континента или всем своим городам; чужие города не меняются.

Очередь имеет приоритет. После её завершения губернатор выбирает следующий допустимый заказ; если все подходящие категории запрещены или ничего не доступно, возникает обычное обязательное решение игрока. Автоматический выбор не обходит требования. Настройки разных городов не разделяют один изменяемый объект.

Алгоритм губернатора — собственная детерминированная эвристика, поскольку точные веса оригинала пока не установлены. Это поддержка управления с похожими настройками, а не доказанное совпадение его решений. Наследование настроек новыми городами, полный перечень поздних категорий и точное воспроизведение алгоритма ещё в работе.

Использование ИИ

Политика настраивает управление жителями через SET_GOVERNOR. При угрозе от видимого противника может ускорить оборонительное производство, проверяя цену, продовольствие и настроение. При нехватке казны рассматривает продажу, если общий прогноз подтверждает сокращение дефицита без ухудшения текущего баланса и беспорядков. Дворец защищён обычной проверкой.

У ИИ нет особой цены или скрытого способа исполнения: используются те же команды/предпросмотры. В Общине он также не может ускорять. Расширение стратегии и совместимость оригинальных решений остаются задачей 4.9.

Сохранения и проверка

Схема 7 хранит версию управления, настройки губернатора, недовольство, ход последней продажи и ограничение источников щитов. Реальное сохранение схемы 6 получено опубликованным модулем b7b574fd5e1706e6 обычными командами; фикстура и журнал находятся в tests/fixtures/published-v6-road*. Миграция сохраняет все старые поля, карту, очередь, PRNG и частичную дорогу, добавляя выключенный губернатор. Порядок ключей JSON не ограничивает корректное сохранение.

22 проверки tests/city-management.test.mjs охватывают ограничения, цены, округление, урожай, накопление/снятие недовольства, перенос щитов, продажу и Переработку, рабочие места, предпочтения/область губернатора, очередь, ИИ и миграцию. Браузерный отчёт отдельно описывает продажу из естественной партии и искусственно подготовленные состояния других правительств. Проверяются отмена/подтверждение, точное исполнение, загрузка и последующее производство с продолжением ИИ.

Общее прохождение проверяет новую партию через реальный интерфейс до победы. Решения человеческой стороны автоматизированы; ручная оценка человеком и сравнение с Windows остаются открытыми.

Машинная сводка ядра фиксирует версии и оставшиеся ограничения.

Источники и контрольные случаи

Следующие наблюдения оригинала: 0/1 щит перед ускорением; нечётное население и остаток 21 щит; две последовательные мобилизации труда; сохранение через границу снятия недовольства; продажа дешёвого/скидочного здания до и после Переработки; смена владельца с накопленным недовольством; конфликты приоритетов губернатора.

Специалисты и расширенное дерево добавлены в схеме 8. Вклад инженера отделён от прочих щитов; условия переключения описаны в новой модели. Профессии используют собственные требования и доходы Atlants.