# конспект · шаг 6 из 6
Конспект: сборка сервера
Понятия
Инвариант мира - условие на всё состояние игры, верное после каждого хода; проверка называет ход, на котором мир сломался.
Детерминированное правило конфликтов - исход зависит от заявок, но не от порядка их прихода; без него повтор партии из журнала расходится.
Разбор до устойчивости - правило применяют, пока никто новый не остановился; кругов не больше, чем отрядов, плюс завершающий.
Ошибка упаковки - два числа в одном, координаты в номере, поле фиксированной длины: за границей данные молча портятся.
Профиль - работа каждого модуля за ход. Тест удвоения - p = log₂(работа при 2n / работа при n).
Что унести
ИНВАРИАНТЫ И КОНФЛИКТЫ
инвариант: в клетке не больше одного отряда - проверка после хода
спор: меньший номер шагает, проигравший стоит и блокирует клетку
цепочка 1, 2 -> 13; 3 -> клетка 2: одно правило - два в клетке 14,
до устойчивости - порядок за 3 круга
круг отрядов «каждый в клетку следующего» - сдвигается целиком
СТРЕСС-ТЕСТ СБОРКИ
ключ ход · 1000 + номер: номера до 20 - 300 чистых попыток
номера до 1100 - расхождение с первой попытки
уменьшение: 6 событий -> [[1, 1000]], номер 1000 распакован как 0
генератор: маленькие значения + значения у каждой границы
ПРОФИЛЬ И УДВОЕНИЕ
40 × 40, 140 отрядов: обзор перебором 9730 (60% хода), сеткой 2762
ускорение модуля с долей d в k раз: ход = 1 - d + d / k
перебор p = 2,0; сетка на карте 64 - p ≈ 2 (плотность растёт);
сетка на растущей карте - p ≈ 1,1
задача: поле на цель один раз за игру - 125 218 -> 7894 шагов
Ловушки джокера
Модули верны - значит, всё верно. Два отряда в клетке, а падает модуль боя через десять ходов.
«Кто первый заявил». Повтор турнира из журнала даёт другой результат.
Правило в один проход. Цепочки блокировок ломают инвариант раз в несколько партий.
Тест на маленьких номерах. Упаковка ломается в первый же день, когда номера перевалили за тысячу.
Оптимизация по ощущению. Ускоряли обход карты, а тормозили пары в обзоре.
Сетка «решила проблему». Через полгода отрядов на той же карте вчетверо больше - и ход опять не влезает.
Комментарии
Пока нет комментариев. Будь первым!
Оставить комментарий