Функция проверки достижимости отдельного параграфа стори


Чт Авг 02, 2018 18:52
Jumangee
Во всех бочках затычка

В сторигеймах все параграфы должны быть связаны, это как-бы в основе концепции и на вкладке "публикации" происходят дополнительные проверки. Тем не менее, возможны ситуации, когда условия игровой механики не позволяют игроку достичь победного (или любого другого) параграфа в силу ошибок при добавлении условий.
Проще говоря, если автор добавил условие, что победить можно если у игрока есть ключевое слово "победа", но забыл выдать это ключевое слово.

Теперь на вкладке "схема", при выборе параграфа появляется дополнительная кнопка – умный робот пройдёт все возможные пути достижения выбранного параграфа. Если путь достижения "работает", он выделит на схеме все параграфы, которые его составляют. И нет, это совсем не то же самое что найти на графе путь к точке ))

Просьба отнестись с пониманием Smile функционал экспериментальный, отрабатывает пока довольно долго и не всегда корректно.

Несмотря на то, что отображается один путь (самый короткий), де-факто отыскиваются ВСЕ возможные пути достижения – есть мысли сделать возможность посмотреть любые варианты.

Сб Авг 18, 2018 17:06
Алексей Быстриков
2  3  4  Свободный искатель
возможны ситуации, когда условия игровой механики не позволяют игроку достичь победного (или любого другого) параграфа в силу ошибок при добавлении условий.
Проще говоря, если автор добавил условие, что победить можно если у игрока есть ключевое слово "победа", но забыл выдать это ключевое слово.

Грубый пример. Гораздо тоньше – избитая уже шкура оленя в Подземельях Чёрного замка. Чтобы её можно было применить, нужно сначала получить саму шкуру, а затем получить ключевые слова "Трое из Эвенло". Однако маршрутов, обеспечивающих и то, и другое, не существует.

при выборе параграфа появляется дополнительная кнопка – умный робот пройдёт все возможные пути достижения выбранного параграфа.

Это вряд ли. Проблема прохождения произвольных книг-игр по своей сути эквивалентна классической проблеме останова для машин Тьюринга или, если хотите, произвольных компьютерных программ. Такой алгоритм попросту не существует.
Точнее так: существует алгоритм, находящий путь, ЕСЛИ ОН ЕСТЬ, и требующий, вообще говоря, неограниченных затрат времени, но не существует алгоритм, который мог бы определять ОТСУТСТВИЕ пути для произвольной книги-игры и произвольно взятых из неё параграфов.
Находить ВСЕ ПУТИ иногда просто бессмысленно – их может быть бесконечно много, например, если в книге реализованы блуждания в лабиринте, или если сюжет переигрывается бесконечное число раз, как в "Морских байках".
Кроме того, я полагаю, речь идёт о книгах-играх без случайных переходов (как в "Веренице миров" или "Спектральных сталкерах"). Так как для таких книг сама формулировка задачи должна быть другой.

Разделы форума