Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

0    0    #1
02.12.2010 15:14

GrAndrey
папа RTADS и Бяка (+49, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1198
Вебсайт

меньше слов

Усложнение традиционного парсера

Предлагаю обсудить здесь направления по усовершенствованию парсера относительно классической его реализации.

Классическая реализация предполагает
Конструкции:
глагол
глагол + (объект)
глагол +  (прямой объект) + (косвенный объект)
глагол + "строка"
глагол + число + (объект)
персонаж, (команда)
междометие

объекты описываются:
прилагательным или существительным отдельно, прил. + сущ., сущ. + связка + прил

перед существительным или прилагательным может стоять предлог, изменяющий действие или переназначающий прямой-косвенный объект . Ту же роль может иметь окончание (склонение) прилагательного или существительного.

В русском языке прилагательное, связанное с существительным, может идти за ним без связки предлогом (клок шерсти)

Не классическая:
-Наречия
-Вопросы (кто, что, зачем, как, почему, зачем) + конструкция следом (огр, зачем мне ключ?)
-предложение, начинающееся с объекта или из него состоящее (рычаг!)  (не в уточнении)
-Три объекта в команде (прибить кошелек к полу молотком)
-Констатация факта (видимо, обращение к персонажу)

Нестандарт усложняет жизнь автору, но дружелюбен к новичкам. Правильно оформленный, он будет сводить все к стандартным действиям, которые мог предусмотреть автор, либо дать адекватный ответ.

Какие ещё нестандартные вещи любят пробовать игроки и оказываются обделенными? Как можно это реализовать?

Отредактировано GrAndrey (02.12.2010 15:18)

Неактивен

0    0    #2
03.12.2010 02:03

uux
Участник (+884, -80)
Откуда: Москва
Зарегистрирован: 02.12.2006
Сообщений: 1624

Re: Усложнение традиционного парсера

ASBer написал:

Тогда вот примеры "простых" действий:

>выйди

ГрАнд прав, тут никаких проблем. Просто специальное свойство комнаты.

>вернись

Можно определить в классе, соответствующем комнатам, два свойства. Одно будет определять предыдущую локацию, а другое - возможность возвращения туда. Затем для глагола прописать реакции на сочетания значений этих свойств.

>положи назад
>отдай назад

Это действительно сложнее. Но в принципе можно прописать свойство с последней локацией и для класса предметов. Правда, здесь есть много сложностей - например, если мы взяли из шкафа зонтик, раскрыли его и пытаемся положить обратно в шкаф, а он не лезет;).

Мои предложения рассчитаны, конечно, не только на ТАДС, но платформа должна быть объектно-ориентированной.

Отредактировано uux (03.12.2010 06:28)

Неактивен

0    0    #3
03.12.2010 23:23

uux
Участник (+884, -80)
Откуда: Москва
Зарегистрирован: 02.12.2006
Сообщений: 1624

Re: Усложнение традиционного парсера

ASBer написал:

Еще хотелось бы более точных глаголов в описаний действий:

Комната. На полу лежит монета, на стене висит пальто.
>возьми монету
Ты поднял монету
>возьми пальто
Ты снял пальто

Ну, опять-таки можно ввести для объектов свойство, отмечающее, висит ли объект, лежит ли на полу, вставлен ли куда и т. п., и анализировать это свойство при взятии объекта.

Неактивен

0    0    #4
04.12.2010 07:05

uux
Участник (+884, -80)
Откуда: Москва
Зарегистрирован: 02.12.2006
Сообщений: 1624

Re: Усложнение традиционного парсера

noname написал:

и я не понимаю, с чего вообще можно было подумать, что новичок станет вводить что-то типа "рычаг!",
"давай-ка", и другой подобный нестандарт.

Это офф-топ, конечно;) - пытливому новичку может прийти в голову не только это, а вообще такие вещи, что и представить себе трудно.

Отредактировано uux (04.12.2010 07:05)

Неактивен

0    0    #5
06.12.2010 21:02

uux
Участник (+884, -80)
Откуда: Москва
Зарегистрирован: 02.12.2006
Сообщений: 1624

Re: Усложнение традиционного парсера

Для "дальше" и "вперед" можно ввести специальные свойства-направления для локации.

Либо, как вариант, продолжать двигаться по этим командам в том направлении, в котором до этого шел игрок.

Впрочем, в данном случае ИМХО нет однозначно правильного решения, все будет зависеть от конкретной игры.

Неактивен

0    0    #6
07.12.2010 20:53

uux
Участник (+884, -80)
Откуда: Москва
Зарегистрирован: 02.12.2006
Сообщений: 1624

Re: Усложнение традиционного парсера

ASBer написал:

Да это понятно что очень многое можно сделать прописав специальнае свойства и запрограммировав их обработку, только вся эта рутина опять навалится на автора, а ему и так не сладко.
Хотелось бы чтобы такие действия обрабатывались на уровне платформы/ст.библиотеки.

Это работа, которую по идее достаточно сделать один раз, а потом использовать везде.

Кстати, пришла свежая мысль про "вперед": тут не все так гладко. Как только игра начнет понимать "вперед", игрок начнет вводить "назад", "вправо" и "влево"wink. Правда, на этот случай можно ввести такой ответ:

> вправо
Шаг вправо-влево считается побегом.

Отредактировано uux (07.12.2010 20:54)

Неактивен

0    0    #7
09.12.2010 00:10

uux
Участник (+884, -80)
Откуда: Москва
Зарегистрирован: 02.12.2006
Сообщений: 1624

Re: Усложнение традиционного парсера

ASBer написал:

Если игра будет помнить направление движения ГГ, вперед/назад/вправо/влево элементарно вычисляется из ю-в-с-з

В том-то и проблема. Представляешь, какой это гемор для автора 9игры или платформы - неважно)? Хорошо, если игрок просто перемещается, а если он еще и поворачивается, стоя в локации?

Отредактировано uux (09.12.2010 00:11)

Неактивен

0    0    #8
10.12.2010 00:43

uux
Участник (+884, -80)
Откуда: Москва
Зарегистрирован: 02.12.2006
Сообщений: 1624

Re: Усложнение традиционного парсера

ASBer написал:

>осмотри собеседника

Надо просто давать всем персонажам в игре, с кем можно поговорить, очень короткие имена, чтобы игроку не взбрело в голову такое набирать;).

И еще одна мысль: самые отпетые извращенцы могут додуматься в момент диалога с кем-нибудь набрать "осм собеседника собеседника" вместо "осм себя".

Отредактировано uux (10.12.2010 00:44)

Неактивен

0    0    #11
19.12.2010 20:06

uux
Участник (+884, -80)
Откуда: Москва
Зарегистрирован: 02.12.2006
Сообщений: 1624

Re: Усложнение традиционного парсера

Dark[Ol(U23)leneri] написал:

А как в парсерах герой реагирует на команду
> сделай уже сам что-нибудь
?)

Сделать реакцию адекватнее, чем она может быть в реальной жизни, все равно не получится.

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru