Предлагаю обсудить здесь направления по усовершенствованию парсера относительно классической его реализации.
Классическая реализация предполагает
Конструкции:
глагол
глагол + (объект)
глагол + (прямой объект) + (косвенный объект)
глагол + "строка"
глагол + число + (объект)
персонаж, (команда)
междометие
объекты описываются:
прилагательным или существительным отдельно, прил. + сущ., сущ. + связка + прил
перед существительным или прилагательным может стоять предлог, изменяющий действие или переназначающий прямой-косвенный объект . Ту же роль может иметь окончание (склонение) прилагательного или существительного.
В русском языке прилагательное, связанное с существительным, может идти за ним без связки предлогом (клок шерсти)
Не классическая:
-Наречия
-Вопросы (кто, что, зачем, как, почему, зачем) + конструкция следом (огр, зачем мне ключ?)
-предложение, начинающееся с объекта или из него состоящее (рычаг!) (не в уточнении)
-Три объекта в команде (прибить кошелек к полу молотком)
-Констатация факта (видимо, обращение к персонажу)
Нестандарт усложняет жизнь автору, но дружелюбен к новичкам. Правильно оформленный, он будет сводить все к стандартным действиям, которые мог предусмотреть автор, либо дать адекватный ответ.
Какие ещё нестандартные вещи любят пробовать игроки и оказываются обделенными? Как можно это реализовать?
Отредактировано GrAndrey (02.12.2010 15:18)
Неактивен
Вообще, без привязки к платформе
Неактивен
выйти: это легко и органично реализуется в TADS, когда автор прописывает направление "out" для локации
Вернуться: проблемно, потому что обратного пути может и не быть, или обратный путь вовсе не в противоположном изначальному направлению.
Можно сделать так(системное сообщение): "Ты пришел сюда с юга, и хотел вернуться, направившись на север, но обнаружил, что так ты не пройдешь." Если игрока коварно перенесли из локации в локацию, игра даже не поймет и будет посылать в направлении последнего перехода
Чтобы игрок что-то вернул или положил обратно? Да ни в жизнь, эти клептоманы только карманы набивают
Отредактировано GrAndrey (02.12.2010 18:43)
Неактивен
да, давно беспокоит этот момент. Чтобы игрок ощущал диалог и не испытывал каждую минуту жесткость рамок интерфейса, игра должна знать контекст команд.
Например:
>взять палку
Взята.
>осм
Ты стоишь посреди поляны.
Из кустов тебе под ноги вылетела и упала граната.
> бросить её!!!
(палка) Брошена.
Это происходит потому, что под "её" система понимает последний предмет женского рода, которым манипулировал игрок. В описанной ситуации игрок, скорее всего, имел в виду гранату, но если мы её обозначим "последним объектом женского рода", то также совершим ошибку в общем случае - игрок часто пропускает знакомые описания и сообщения демонов. Для него "её" - по прежнему палка.
Как тут следует поступать - с трудом представляю, тут и человек может неправильно понять.
Неактивен
>Мюллер, давай-ка снимем девочек
-Нет, пусть еще повисят
*убежал реализовывать оборот "давай-ка"*
Неактивен
uux написал:
Для "дальше" и "вперед" можно ввести специальные свойства-направления для локации.
Либо, как вариант, продолжать двигаться по этим командам в том направлении, в котором до этого шел игрок.
Очень грамотное решение.
Стандартные отеты:
- Ты не знаешь какое направление в данном случае соответстует движению вперед.
- Ты попытался продолжить идти на север, и обнаружил, что дальше пройти нельзя.
Неактивен
Nex написал:
>убежать
>сбежать
Вы дейстительно хотите выйти из игры? Да/Нет
>
Неактивен