Forum.iFiction.Ru

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

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

Вы не зашли.

0    0    #1
18.10.2001 14:42

filden
Участник
Откуда: Tallinn
Зарегистрирован: 18.10.2001
Сообщений: 7

С чего начать создание анализатора команд

Здравствуйте, иферы, или как там правильно!

Собрался написать игру и наиболее сложным для себя считаю написание анализатора команд. Не подскажите ли, где можно найти литературу по теории написания таких анализаторов; что в данной области существует на русском языке и вообще с чего начинать? Или русских анализаторов нету и все первооткрыватели?

Как создать словарь и как его связать с анализатором? Ну это сразу такой конкретный вопрос...

Спасибо!filden@hot.ee

Неактивен

0    0    #2
18.10.2001 14:50

ZyXEL
Участник
Откуда: Moscow, Russia
Зарегистрирован: 23.06.2001
Сообщений: 194

-------

Re: С чего начать создание анализатора команд

Мы затрагивали эту тему в "Метафизике IF"

Неактивен

0    0    #3
18.10.2001 15:39

Al Chipollino
Участник (+1)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 496

Re: С чего начать создание анализатора команд

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

Неактивен

0    0    #4
18.10.2001 20:05

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: С чего начать создание анализатора команд

Если это вызывает такой интерес, то могу попробовать подготовить материал о том, как я у себя его реализовал.

Что касается тем, где это затрагивалось, то это:
http://www.taplap.ru/cgi-bin/yabb/yabb. … =995175153

и

http://www.taplap.ru/cgi-bin/yabb/yabb. … =993509091

Неактивен

0    0    #5
19.10.2001 07:31

filden
Участник
Откуда: Tallinn
Зарегистрирован: 18.10.2001
Сообщений: 7

Re: С чего начать создание анализатора команд

2Chipollino: Под анализатором имею ввиду такой мотор, который бы распознавал предложения и согласно им принимал какие-то действия. Чтобы анализировал согласно словарю глаголы, согласно им и предлогу требуемые падежи существительных. Короче, нормальный лингвистический анализатор.

2Olegus: Если можешь - подготовь какой-нибудь материал по своим разработкам. Интересно.
За ссылки спасибо, ещё не смотрел.

Неактивен

0    0    #6
19.10.2001 11:02

Al Chipollino
Участник (+1)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 496

Re: С чего начать создание анализатора команд

Предложение поделить на глагол, предлог, существительные и даже прилагательные вроде просто... если нет, то скажи в чём проблема.
После этого, у тебя есть уже распознанное предложение и вот тут вся сложность и кроется: обработка действий. Я пляшу в данном случае от глагола, т.е. для каждого из них пишется своя программа обработки, в которую как параметры передаются существительное и прилагательное.
Платформа на русском, думаю, и должна иметь такой формат построения, при этом подпрограммы глаголов должны быть написаны самим автором платформы... Муторно, но ничего не поделаешь.

Неактивен

0    0    #7
19.10.2001 16:19

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: С чего начать создание анализатора команд

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

У меня после подобного разбора определяется, основное предназначение глагола (манипуляции с предметами, передвижение и т.п.) и передается в зависимости от этого в следующую процедуру, где происходят уже сами действия, и где текст выглядит уже примерно следующим образом:

if N1='лопата' then
   if verb='ударить' then
         if N2='кролик' then RabbitMustDie();
         elseif N2='лошадь' then HorseMustDie()
   else if verb='копать' then print('Зачем? Лучше убьем ею кролика или лошадь!')
endif;


Фразы типа: "ударить лопатой кролика", "ударить кролика лопатой", "побить лопатой кролика", будут приводить к этому блоку.

Вот...

Неактивен

0    0    #8
19.10.2001 17:58

Al Chipollino
Участник (+1)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 496

Re: С чего начать создание анализатора команд

Не забывай ещё
if KrolikRoom==CurrentRoom
if not KrolikDead
if LopataRoom==InHand
if HvataetSil
if HorosheeNastroenieNePokinetBolsheVas
А это очень и очень муторно... ужасъ...

Неактивен

0    0    #9
22.10.2001 07:36

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: С чего начать создание анализатора команд

Само собой...

Неактивен

0    0    #10
22.10.2001 13:26

filden
Участник
Откуда: Tallinn
Зарегистрирован: 18.10.2001
Сообщений: 7

Re: С чего начать создание анализатора команд

Хорошо, тогда такие вопросы. Как лучше всего реализовывать?
К объекту "предмет" привязывать все глаголы/действия, которые с ним можно сделать;
Или к глаголу/действию привязывать все объекты, с которыми этот глагол работает.
?

Неактивен

0    0    #11
22.10.2001 15:48

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: С чего начать создание анализатора команд

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

P.S. Но все это реализуемо только тогда, когда анализатор выдал правильно разобранную на составляющие команду. То есть приходим к тому, с чего начали. К анализатору.

Неактивен

0    0    #12
23.10.2001 07:06

filden
Участник
Откуда: Tallinn
Зарегистрирован: 18.10.2001
Сообщений: 7

Re: С чего начать создание анализатора команд

Анализатор - это, конечно, здорово, но я пишу не совсем игру, а платформу для написания игр. Поэтому меня и интересует, как в этом самом эдиторе связывать глаголы с объектами/субъектами. Список объектов, понятно, надо связывать с конкретными локациями. А глаголы? Расписать для каждой локации активные глаголы? Или просто список предметов, а уж у каждого предмета есть свой список активных глаголов? Мда... Это я пока всё в теории рассуждаю, так как до этого момента ещё не добрался. Пока я перед вопросом, какую динамическую структуру организации памяти выбрать. Достаточно ли построить всё на вложенных динамических массивах, или нужно использовать технологию ADO... Мда...

Неактивен

0    0    #13
23.10.2001 09:04

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: С чего начать создание анализатора команд

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

     Я вот, например, пишу игру на Паскале. Данные же для игры (локации, предметы, текстовые данные) подготавливаю в некой визуальной среде. Однако, чтобы избежать рутины, постепенно переношу некоторые куски кода в сами данные. Например, у меня описание локации может меняться в зависимости от значения переменной. Можно это, конечно, прописать и в Паскале, но это громоздко и пришлось бы делать это для каждой локации. Поэтому эти условия у меня вынесены в блок данных. То есть, паскалевская программа когда нужно вывести описание локации смотрит, а нет ли условий. Если есть, то в зависимости от того, какое из них выполняется, выводится то или иное описание.

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

Неактивен

0    0    #14
23.10.2001 09:13

filden
Участник
Откуда: Tallinn
Зарегистрирован: 18.10.2001
Сообщений: 7

Re: С чего начать создание анализатора команд

А я в общем-то тем же самым занимаюсь. Типа пакета для создания, в котором есть редактор для создания локаций, редактор объектов, субъектов, редактор словаря и редактор реакций объектов на словарные записи. То есть в общем-то рождаются одновременно и платформа и игра, а точнее платформа, заточенная под одну конкретную игру. И всё это на ВБ.

Неактивен

0    0    #15
23.10.2001 09:25

Al Chipollino
Участник (+1)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 496

Re: С чего начать создание анализатора команд

В игре у тебя будет 3 объекта: предмет, действие и комната. У каждого из них свойства... Свойства предмета - действия, т.к. они являются их следствием. Прописываешь каждое действие, каждый предмет и свойства комнат, т.к. локации - немного другой объект, чем предмет. Вроде так:)

Неактивен

0    0    #16
23.10.2001 09:35

filden
Участник
Откуда: Tallinn
Зарегистрирован: 18.10.2001
Сообщений: 7

Re: С чего начать создание анализатора команд

Ну ещё будут субъекты. Левые персонажи, бродящие по локациям и занимающиеся неизвестно чем... Но это всё в будущем. Вначале хотя бы те 3 объекта сделать...

Неактивен

0    0    #17
16.10.2002 12:16

Псих
Гость

Re: С чего начать создание анализатора команд

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

0    0    #18
16.10.2002 16:41

JackCL
Участник (+55, -24)
Зарегистрирован: 03.03.2001
Сообщений: 416

Re: С чего начать создание анализатора команд

2Псих:

+

За флейм. Остроумно, но просто ни к месту, знаешь ли. Если бы еще что умное сказал.  8)

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru