Идеи: Генератор сказки

Это идея не для игры, а для программы, кому не интересно - можете не читать.
Кратко:
Идея для генератора текста сказки по заданным шаблонам сюжетов с предустановленным набором слов.

Подробнее:
Остановимся подробнее на каждом аспекте:
  1. Слова. Каждое слово состоит в одном из наборов, разделяемых по следующим принципам:
    • по части речи (существительное или глагол, к примеру)
    • по контексту (движение/перемещение в пространстве, действие, диалог)
    • описательные (сюда идут прилагательные)
    • имена персонажей
    Для существительных при этом хранятся слова-замены для чисел (единственное или множественное) и падежей, а также род существительного для правильной подстановки. Для каждого глагола, хранящегося в инфинитиве, есть список всех иных форм для правильной подстановки в контекст (время, род). У каждого имени есть полная и краткая формы, а также возможные разговорные версии (например, Владимир - Володя) и указание пола персонажа, к которому оно применимо.
  2. Предложения. Предложения - это шаблоны, в которых есть пустые места (ячейки), в которые вставляются слова в зависимости от контекста. Пример предложения: <Имя-полное-муж> <глагол-действие-прошл-муж> на <сущ-муж/жен-творит> и <глагол-действие-прошл-муж>. Примерный результат: Иван лежал на печи и думал.
  3. Абзацы. Это набор шаблонов, по которым задается порядок предложений в тексте каждого абзаца. Абзацы делятся на три основных вида:
      • описание действия
      • описание окружения/персонажа
      • диалог
  4. Главы. Шаблоны, которые определяют порядок абзацев. Также, в зависимости от заданного количества текста в результате, главы могут явными и неявными. Явные главы встречаются в размерах типа "роман" и, реже, в размере "рассказ". Такие главы обычно включают больше описательных абзацев и разделяются с помощью нумерации. Неявные главы встречаются в коротких текстах и не разделяются между собой. Так, например, в короткой сказке вы увидите, как Ивану-царевичу дали задание пойти и спасти царевну, он по дороге садится на волка, с которым подружился, валит Змея Горыныча и жили они с царевной, поживали да добра наживали. Какого-либо явного деления не заметно, но глава с выдачей задания и следующие за ней поездка и дружба с волком - это разные главы. Наполнение главы опционально, то есть подстраивается под размер получаемого текста. Главы, как и абзацы, могут быть посвящены диалогам или описаниям целиком, но чаще всего смешивают и то, и другое.
  5. Сюжет. Набор сюжетов определяет порядок и тематику глав. В приведенном выше примере сказки про Ивана-царевича пример шаблона сюжета был бы таким: <Экспозиция-герой> <взято задание> <в пути-описание> <знакомство-новый друг> <в пути-описание-кратко> <знакомство-противник> <бой героя с противником-победа> <выполнено задание> <заключение-хорошая концовка>
Насчет глав - могу немного ошибаться в терминологии, прошу меня поправить, если сильно ошибся.

Сложности для реализации данной идеи:

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

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

Спасибо за внимание.

Комментарии

Популярные сообщения из этого блога

Генератор названий оружия

Создание компонента Delphi