Бьюсь тут над анализатором вводимых игроком команд. Поскольку я не гений, то приходится делать некоторые ограничения игрокам при составлении предложений, а именно следующие:
1. Глагол должен всегда идти первым:
"возьми яблоко", а не "яблоко возьми"
2. Характеристики действия и объектов должны идти перед объектами:
"возьми красное яблоко", а не "возьми яблоко красное"
"осторожно положи камень на тумбу", а не "положи осторожно камень на тумбу"
По-моему, это не критично и, в принципе, естественно. Какие будут замечания или дополнения?
Неактивен
Так... Вопрос: где-нить еще (ленив я, чтоб весь форум перерывать) что-нить на Subj писалось?
Хоть название темы дайте...
Я, криво и плохонько, реализовал часть изложенных здесь идей.
Ну - числительные, прилагательные и местоимения я просто пока не трогал. Будет над чем еще подумать.
Я дошел до того, что фразы "осмотрись", "возьми ключ со стола", "открой дверь ключом", "выйди".. и т. д. - проходят на ура. С любым осмысленным порядком слов.
"Заставлять пользователя <подстраиваться> под возможности программы закономерно считается унизительным"(с)
А вот фраза "стукни ключом в дверь" ;( в алгоритм не укладывается.... или я что-то пропустил?
И мне кажется, что подобная формулировка - не единственная... Не то чтобы меня на данном этапе это сильно тормозило, но сам факт! Обсуждать будем?
Неактивен
Olegus t.Gl. написал:
если, конечно, в базе данных у глагола "стукнуть" есть основной объект винительного падежа с предлогом "в", а также вспомогательный объект творительного падежа
Я с самого начала танцевал не от действий, а от объектов. Дескать - выделим т.н. главный объект ("открой ключом дверь" - это дверь) и предоставим ему самому разбираться: возможно ли это, что для этого необходимо, а если возможно - то что получится...
Впрочем анализ фразы - отдельная функция. Всегда могу и переписать. добавить базу по глаголам, или вообще, к примеру, применять несколько алгоритмов, с последующим выбором из нескольких решений наиболее вероятного.
Но пока - и то что есть сойдет...
(да... статьи надо читать внимательнее... согласен)
Неактивен