Бьюсь тут над анализатором вводимых игроком команд. Поскольку я не гений, то приходится делать некоторые ограничения игрокам при составлении предложений, а именно следующие:
1. Глагол должен всегда идти первым:
"возьми яблоко", а не "яблоко возьми"
2. Характеристики действия и объектов должны идти перед объектами:
"возьми красное яблоко", а не "возьми яблоко красное"
"осторожно положи камень на тумбу", а не "положи осторожно камень на тумбу"
По-моему, это не критично и, в принципе, естественно. Какие будут замечания или дополнения?
Неактивен
А в чем у тебя проблемы с анализатором? Какие трудности?
Неактивен
Пишу-то я на Паскале.
Что касается расположения глаголов и пр., а если в предложении два действия: "возьми камень и кинь его в гоблина"? Хотя все это решаемо.
Что касается помощи, то пока справляюсь. Хотя характеристики еще не реализованы. Структура команды по Olegus'у такова:
глагол + осн.объект + всп.объект + доп.объект
"привяжи лошадь к забору веревкой"
Порядок следования объектов и предлоги роли не играют, то есть тем же самым для компьютера будет: "привяжи с помощью веревки лошадь к забору". Хотя все это требует нехилой словарной базы. К тому же возможно использования нескольких команд (см. пример выше про бедного гоблина), а также нескольких объектов: "возьми камень, пилу, топор и пожрать".
В любом случае, работа идет и, хвала небесам!, останавливаться не собирается! ;D
Неактивен
Из перечисленных выше примеров мой анализатор не поймет только "Лошадь привяжи верёвкой к забору". Все остальные - на ура... Я же говорю - любой грамотно составленный порядок объектов (то есть с падежами и предлогами). Главное, чтобы в словарной базе эти слова были.
Неактивен
...но пока лень реализовать. А так, сперва этот вариант было проще разработать. Нашел глагол - сразу ясно, какие объекты (из последующих слов) к нему можно прицепить. Основные проблемы с произвольным положением глагола проявляются только в случае использования в одной фразе нескольких команд. Если же допустить, что во фразе всего одна команда - то нет проблем. Это легко реализуемо.
Неактивен
Переписывая свой анализатор (в связи с новой структурой данных приходится все переписывать!) наткнулся на еще одну проблему - изменение падежей существительного ЧИСЛИТЕЛЬНЫМ (будь оно неладно!). Сейчас штудирую учебник русского языка, чтобы решить эту проблему наименее кровавым образом.
Неактивен
С предлогами-то как раз проблем нет, но вот числительные - та еще штучка...
Кстати, в объекте "существительное" у меня запоминается каким предлогом оно сопровождается.
Неактивен
В каком смысле? Можно поподробнее насчет масок в Inform'е?...
Неактивен
В самом скором времени (до 8 февраля) выложу алгоритм анализа фразы игрока. Он прост, но хорош. Я его использую в "Наследство Мути...".
Это кому-либо интересно?
Неактивен
Если кому это интересно, то статья уже вышла. Смотрите раздел "Инструменты" нашего сайта, или (что еще проще) вот она сама:
https://ifiction.ru/a/ifparser.html
Неактивен
Как-то легко решился вопрос с местоимениями. Теперь вместо таких фраз, как:
>возьми лампу и зажги лампу
10
>возьми лампу
>зажги лампу
можно вводить так:
>возьми лампу и зажги ее
10
>возьми лампу
>зажги ее
а такую фразу, как "возьми меч и убей мечом дракона" можно заменить на "возьми меч и убей им дракона".
Пора бы приложение к статье выкладывать...
Неактивен
По идее, фраза "стукни ключом в дверь" должна проходить по моему алгоритму на ура, если, конечно, в базе данных у глагола "стукнуть" есть основной объект винительного падежа с предлогом "в", а также вспомогательный объект творительного падежа. В этом случае на выходе будет следующая конструкция:
Глагол: Стукнуть
Осн. объект: Дверь
Всп. объект: Ключ
А вот как автор будет обрабатывать эту конструкцию - дело его.
Неактивен