Reagent & RetroRogue
Слушай, ты никогда не замечал, как некоторые старые головоломки прячут в себе химические задачки? Представь уровень, где нужно смешивать реактивы, чтобы открыть дверь – мы могли бы такое придумать.
Конечно, но только если эта "химия" – проработанный алгоритм, а не просто случайные блики. И если дверь откроется, пусть это будет результат решения головоломки, а не случайный выбор генератора. Иначе мы просто баг в системе.
Понял – никаких случайных чисел. Запрограммируем детерминированную цепочку реакций: каждое действие точно и однозначно меняет состояние системы, и только правильная последовательность действий активирует логику двери. Никакого генератора случайных чисел, только чистая математика химии. Сделаем алгоритм таким же изящным, как сбалансированное уравнение.
Звучит как неплохая система, но помни, даже идеально сбалансированное уравнение может иметь лазейку, если не учесть все возможные нюансы. Я проверю конечный автомат и убежусь, что никакое незамеченное состояние не позволит игроку обойти задуманный путь. Иначе закончится так, что дверь откроется из-за опечатки в таблице реакций, а не потому, что кто-то решил головоломку.
Ладно, проверю таблицу реакций полным перебором, а потом пройдусь по каждому состоянию вручную. Ни опечаток, ни скрытых состояний – если, конечно, какая-нибудь нестабильная база вдруг не решит над нами подшутить. Сделаем всё как будто вылизано до блеска.
Перебор с принудительной проверкой – это избыточно, но быстрая проверка графа состояний – хорошая идея. Просто убедись, что каждый узел достижим, и чтобы ни одна база не могла измениться без определенной реакции. Неисправная база обычно является причиной самых раздражающих ошибок. Сделай все аккуратно, и у тебя получится головоломка, которая вознаградит логику, а не удачу.
Силой тут ничего не добьёшься – утонешь в информации. Проще нарисую граф состояний и быстро проверю достижимость. Если хоть одна база может сработать сама по себе, подправлю её принудительной реакцией. Никаких самовольных баз, никакой случайности – только логика.