Платформа NyxtaleПроверка истории
Бот-обход
Обход всех путей: ненайденные концовки, петли и ошибки рантайма.
Бот-обход запускает историю тем же интерпретатором, который читает её у читателя, и на каждом выборе разветвляется — проходит все опции.
Что он находит
Ошибки времени выполнения — то, что ломается только с конкретными значениями.
Недостижимые концовки по арифметике. По графу путь есть, но порог не берётся: trust >= 5 при
максимуме накопления в три. Статические проверки этого не видят, потому что считают связность, а не
значения.
Петли. У каждого пути есть бюджет шагов; исчерпавший его помечается как возможный бесконечный цикл. Обычно это возврат в комнату, из которой при текущих флагах нет выхода.
Экономику выбора. Платные опции (@cost) обход видит так же, как читатель: он знает, какая была
доступна. Отсюда ответ на вопрос, хватает ли валюты хотя бы на одном маршруте.
Отчёт
Обход считает по путям, а не по узлам: одна реплика на двух путях — два случая, потому что состояние в них разное.
| Строка отчёта | Что означает |
|---|---|
| Найденные концовки | сколько из объявленных достигается хотя бы одним маршрутом |
| Тупики | пути, оборвавшиеся без концовки |
| Возможные петли | пути, упершиеся в бюджет шагов |
| Ошибки | путь и место, где движок споткнулся |
Концовок найдено меньше, чем объявлено — значит есть недостижимая.
Обрыв обхода
У обхода есть потолок разветвлений: ветвящаяся история растёт комбинаторно, и полный перебор на большом дереве не заканчивается.
При достижении потолка отчёт говорит об этом отдельной строкой. Путь, оборвавшийся ошибкой, бюджетом или потолком, в статистику пройденных не попадает — у него нет исхода.
Обход детерминирован: те же условия дают тот же отчёт.
Как пользоваться при письме
Прогоняйте обход на каждой дописанной развилке, а не в конце: он находит ровно то, что через неделю уже не вспомнить — «эта ветка перестала вести к концовке, когда я поменял порог».
Концовка не находится, а по графу достижима — проверяйте арифметику. Битую ссылку видно глазами, потолок накопления в голове не держится.