Нашёл две ошибки в библиотеках. Одну серьёзную (фактически, блок) и одну мелкую косметическую.
1. Модуль advr.t, функция parseNounPhrase.
if (objs!=[] and (wasadjafn || specifed)) return [(i+1)]+objs;
+1
в этом выражении, как оказалось лишнее, т.к. i
инкрементируется двумя строчками выше. Ошибка приводила к тому, что на фразу, скажем, "воткнуть булавку в подушечку" парсер отвечал "Я не понимаю это предложение".
2. Модуль errorru.t, функция parseError2.
if (p=inPrep) {p.sdesc;" ";i.vdesc;} else
p.sdesc;" ";
тут лишнее, т.к. уже выводилось на экран четырьмя строчками выше. Ошибка приводила к тому, что сообщение об ошибке выглядело как "Я не знаю как воткнуть булавку в в подушечку". Т.е. предлог дублировался.
Неактивен
И еще одна ошибка:
Gayka: item noun='гайка/1ж' location=startroom ; Vint: item noun='винт/1м' location=startroom ;
>присоединить винт к гайке
Я не понимаю это предложение.
"присоединить винт к гайка" (или любой другой падеж, кроме дательного) - работает.
Неактивен
GrAndrey написал:
Фикс в приложении.
Андрей, спасибо! Все пашет!
Неактивен
И еще один глючок:
>войти в пещеру Ведущий внутрь пещеры проход слишком узок. >зайти в пещеру Во что ты хочешь войти? >пещеру Я не знаю как войти в пещеру.
Правда, пока выкрутился, применив compoundWord...
Отредактировано uux (25.03.2010 05:41)
Неактивен
GrAndrey написал:
Достаточно пополнить свойство verb в глаголе inVerb следующей лексемой: 'зайти в'
В моем случае почему-то не помогло:( - сам удивляюсь, почему. Правда, как уже сказано, обошел проблему при помощи compoundWord.
UPD: был неправ - действительно помогает. Видимо, забыл перекомпилировать игру.
Отредактировано uux (26.03.2010 05:48)
Неактивен