Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Генерация предложений, Автоматическое составление предложений 
:(
    Опции темы
Sonyk
Дата 19.2.2010, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 30.6.2008

Репутация: нет
Всего: нет



Добрый день всем. Многие из вас наверняка переиграли во всякие текстовые онлафновые игры типа бойцовского клуба, территории, арены. Я когда-то играл в Арене, затем их стало появлятся просто невероятное множество. Не суть. Кто играл, тот знает, что в этих играх при бое присутствует лог сообщений боя. Мне интересно как реализована эта часть. Генерируют ли абсолютно случайные предложения со смыслом, либо они используют заготовленные предложения, а только подставляют местоимения. Я даже не знаю как сформулировать вопрос. Допустим, у меня есть много действий (около 10) и 2 действущих лица (Как в одной из этих игр). Нужно сгенерировать случайное предложение о взаимодействии этих двух лиц. Как это сделать? Строить дерево из всех возможных конструкций русских предложений? Вобщем, за любой совет буду благодарен!
PM MAIL   Вверх
UniBomb
Дата 19.2.2010, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
***
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 1754
Регистрация: 24.10.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 97



Sonyk, ну а что тут может быть сложного)) заводиш три массива строк. Первый - с именами, второй с действиями а третий с эпитетами. Заранее заполняешь два последних какими-нибудь нейтральными словами, не дающими никаких указаний пола, расы и прочих атрибутов. Далее формируешь предложение беря имя текущего героя из первого массива и рандомно любое значение из последних двух массивов. Например:

Код

epithet[3] = "В порыве ярости", "Из последних сил", "Со всей дури";
action[3] = "рубит топором", "бьёт прикладом", "испускает зловония";
names[2] = "Живчик", "Жмурик";



Далее ты формируешь предложение:

Код

printf("%s %s %s, урон составил %i хелсов", epithet[rand()%3], names[curent], action[rand()%3], rand()%100);


Далее в таком же духе. Т.е. если скажем пользователи сами же выбирают ещё и какие удары наносить, то из второго массива берутся соответствующие элементы. Эпитетов можно понатыкать превеликое множество в разных частях предложения.


--------------------
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0953 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.