Forum.iFiction.Ru

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

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

Вы не зашли.

0    0    #1
10.06.2002 18:16

sereg@
Участник
Зарегистрирован: 10.06.2002
Сообщений: 6

Посморишь на него - человек, как человек, а внутри - город, дымящийся в руинах

Люди-люди, человеки!!!!!!

Всем привет! Поиграл тут недавно в игру Вася-2. И захотел сделать нечто подобное, но не знаю с чего начать. Кто нибудь, подскажите плиз, где взять информацию о том как пишутся игрушки, или совет дайте, ведь есть же здесь люди, которые сами до всего додумались, помогите други пожааааааааалуйста!!!! %))))))))

Неактивен

0    0    #2
10.06.2002 21:33

dyx
Участник
Зарегистрирован: 15.12.2001
Сообщений: 99

Re: Люди-люди, человеки!!!!!!

  Серега, привет!

   Во-первых, поиграй во что-нибудь получше Васи, например, в Тень Злобы или Зомби4 и тогда, надеюсь, у тебя отобъется всякая охота делать текстовые игры smile
   Во-вторых, на сайте .www есть много отличных статей (в частности, четырехлогия (wink Имперора о создании IF-игр. ("Разделы -> Статьи", там найдешь).
   В-третьих, убедительно прошу не выкладывать игрушку ТАКОГО качества, как Вася....

   Отчаянный Дух (ОДИН)

Неактивен

0    0    #3
12.06.2002 04:33

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

Re: Люди-люди, человеки!!!!!!

Дух, браво!  8)

PS Почему ты не зарегистришься как постоянный посетитель?  ???

Неактивен

0    0    #4
12.06.2002 22:25

sereg@
Участник
Зарегистрирован: 10.06.2002
Сообщений: 6

Посморишь на него - человек, как человек, а внутри - город, дымящийся в руинах

Re: Люди-люди, человеки!!!!!!

Согласен, что Вася не шедевр. Поиграл в Зомби, понравилось. Хочу сделать такую же, а может быть и круче. И хочу написать ее на с++, только н_е знаю как, и где взять инфу о том как это сделать тоже не знаю, поможите люди добрые, плизззззззз

Неактивен

0    0    #5
13.06.2002 01:50

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

Re: Люди-люди, человеки!!!!!!

Во-первых, не мешало бы вам, ребята, эту дискуссию перенести в раздел "Техническая часть".
Во-вторых, на сайте SolitaryPilgrima (http://gcmsite.chat.ru) для всяких Зомбей есть исходники. Можешь в них покопаться.
Что касается всего остального - задавай конкретные вопросы, а уж на них-то мы может и найдём, что ответить...

Неактивен

0    0    #6
13.06.2002 20:10

sereg@
Участник
Зарегистрирован: 10.06.2002
Сообщений: 6

Посморишь на него - человек, как человек, а внутри - город, дымящийся в руинах

Re: Люди-люди, человеки!!!!!!

В исходниках покапался, но ничего не понял, так какПаскаль не изучаю. Понятночто они с с++ похожи но все это другое. А насчет конкретных вопросов:  Как сделать перемещения по миру, как сделать битвы, как прописать IQ героев, как сделать чтобы характеристики влияли на количество хитов или размер повреждений. Кто играл в игры типа всяких MUD'ов тот меня поймет

Неактивен

0    0    #7
14.06.2002 03:02

dyx
Участник
Зарегистрирован: 15.12.2001
Сообщений: 99

Re: Люди-люди, человеки!!!!!!

JackCL написал:

Дух, браво!  8)

PS Почему ты не зарегистришься как постоянный посетитель?  ???

По глазам вижу, ты это смеешься надо мной... Или нет?
   И к тому же, я уже довольно давно зарегился (как dyx) на этом форуме, а в последнее время лень заходить на форму ввода пароля, лень все это набивать, а сам форум меня в последнее время не определяет. Вот такие фишки. (кстати, как некоторые уже поняли, то е-мыл, что я пишу абсолютно бредовый и ни к кому хорошему вы не напишите, так и знайте wink)
   Так все таки, ты надо мной смеялся? (какой я недогадливый, а?)

   Отчаянный Дух (ОДИН)

Неактивен

0    0    #8
14.06.2002 03:22

dyx
Участник
Зарегистрирован: 15.12.2001
Сообщений: 99

Re: Люди-люди, человеки!!!!!!

  Хм... Обычно локации делают массивом (MyLocs: Array[1..const_countlocs of Record...). Каждая локация содержит переходы с нее (север, юг, запад, восток и, возможно, 6 дополнительных: вверх, вниз, сз, св, юз, юв), а также свое описание (хотя в ДОСе это вряд ли приемлимо - там строка ограничена 255 символами). Можно добавить еще разные штуки, как то: предметы, которые там есть (точнее, ссылки на них), длинное и короткое описания, различные флаги при входевыходе на локацию и т.д.
   (Кстати, у меня исходники СолитариПилгрима не скачиваются...)
   Вот насчет битв я не знаю, т.к. ни разу не видел нормального применения в IF-игре. Но, предполагаю, их надо делать так же, как и в РПГ-ах, только с текстовым выводом. (пример: идет герой, заходит на локацию, где его ждет злой пират. Программа смотрит: есть пират и он злой; будем бить героя. Программа пишет: Пират вас атакует и отнимает жизнь [сила удара пирата * рандом(20)  3.14] (формула полностью бредовая). Ударили, если не убили, то ходит игрок. Игрок говорит: ударить пирата. Программа вновь вычисляет удар по той же формуле (вместо силы удара пирата ставится ваша сила). Если пират убит, программа это пишет, если нет - все по новой). Вспомнил, есть же у Пилгрима Зомби! И там достаточно неплохо все сделано (если не считать того, что после первого удара игрока схватка идет до конца, то есть нельзя, скажем, выстрелить из пистолета после удара ногой или удрать от зомби, чувствуя, что силы на исходе).
   Пока все,
   Отчаянный Дух (ОДИН)

Неактивен

0    0    #9
14.06.2002 03:33

dyx
Участник
Зарегистрирован: 15.12.2001
Сообщений: 99

Re: Люди-люди, человеки!!!!!!

  Вновь я.
   (ха, у меня две звездочки! Я почетный мембер этого форума! [плачет от радости])

   Насчет IQ героев - это ты очень интересно завернул. То ли ты имеешь ввиду просто их реакции на действия игрока, то ли ты про их активные действия (хождение, разговоры между собой, некоторые спонтанные действия).
   Если первое - то никаких проблем. Смотришь фразу, которую ввел игрок. Например, он ввел: "просить у Мути арбалет" (эх, наследство...). Разбираешь, если есть слово "Мути" (означающее персонаж), ищешь, а есть ли этот Мути на этой локации. Не находишь - пишешь "вы о чем?!", если да, то продолжаешь разбирать фразу. Потом смотришь, если ли у класса (типа, рекорда...) Мути арбалет в запасе. Если есть - даешь... Ну и т.д. и т.п.
   Если второе - то все гораздо хуже. Хождение реализовать просто - можно делать рандомное перемещение между соседними локациями или можно задавать специальный маршрут, по которому должен ходить персонаж. Здесь трудностей вроде не возникнет.
   [дальше не дописано]

   В общем, надо примеры кода давать... Который надо еще и разработать... Или можно скачать мануал у Грехема Нельсона по Информу и читать-читать-читать...

   Отчаянный Дух (ОДИН)

Неактивен

0    0    #10
14.06.2002 06:00

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

Re: Люди-люди, человеки!!!!!!

По глазам вижу, ты это смеешься надо мной... Или нет?

Оставим сие на моей не очень чистой совести  roll

А по поводу ввода пароля и прочего - ну вот видишь, ввел и уже почетный мембер стал, опять же слезы радости, умиления и неописуемого счастья. Как сказал бы какой-нибудь романтик - "это прекрасно". Сам сейчас заплачу от умиления. (Кто-нибудь из админов, срочно поставьте сюда смайлик со слезами умиления!  ;D )

Вообще же Олегус прав: тема съезжает в технические подробности и заслуживает переноса в изредка (очень изредка) мною модерируемую "техчасть". К сожалению у меня нет прав на модерируемость раздела "игры", так что перетащить к себе данный тред я не могу.

2sereg@: мне думается, что некоторое количество заданных тобой вопросов так или иначе обсуждалось в той же самой "техчасти". Поброди там, может найдешь что для себя полезное.

Неактивен

0    0    #11
14.06.2002 20:46

sereg@
Участник
Зарегистрирован: 10.06.2002
Сообщений: 6

Посморишь на него - человек, как человек, а внутри - город, дымящийся в руинах

Re: Люди-люди, человеки!!!!!!

Наверное, тупой человек так до конца жизни тупым и останется smile)) Может у кого-нибудь есть исходник игрушки на с++. Дайте плиззззззззз. Я что-то ничего не понял sad(((((((((( :-/

Неактивен

0    0    #12
14.06.2002 21:04

stalker
Участник
Откуда: Сургут
Зарегистрирован: 09.05.2002
Сообщений: 41
Вебсайт

wbr.

Re: Люди-люди, человеки!!!!!!

Что тебе конкретно не понятно?

Обычно в программе организуется псевдо-бесконечный цикл. В котором:
1) проверяются флаги,
2) отрабатывают демоны (отложенные события)
3) увеличиваются счетчики
4) анализируется команда игрока и реакция на нее
5) ожидается ввод очередной команды после идем на пункт 1).

Тебе не понятно как на С++ это писать?

Неактивен

0    0    #13
15.06.2002 18:16

sereg@
Участник
Зарегистрирован: 10.06.2002
Сообщений: 6

Посморишь на него - человек, как человек, а внутри - город, дымящийся в руинах

Re: Люди-люди, человеки!!!!!!

В том то все и дело не понимаю как это реализовать в программе

Неактивен

0    0    #14
16.06.2002 00:24

dyx
Участник
Зарегистрирован: 15.12.2001
Сообщений: 99

Re: Люди-люди, человеки!!!!!!

  Пара линков (если еще не читал):
http://fiction.pp.ru/articles.php?op=show&aid=36
http://gcmsite.chat.ru/gamemaker.htm

   А вообще, у меня закрадываются большие сомнения насчет твоих познаний в прог. языках. Купи себе хорошую книжечку по Си, по алгоритмам и вообще по теории программирования, почитай пару умных статей на разных сайтах, посвященных игроделанию (типа .www) и т.д.
   Ну ты меня понял

   Отчаянный Дух (ОДИН)

Неактивен

0    0    #15
16.06.2002 03:02

Adramelek
Участник (+1)
Зарегистрирован: 07.07.2006
Сообщений: 193

Re: Люди-люди, человеки!!!!!!

А вообще-то можно и на платформе что-нибудь написать. Что у нас есть русское и с текстовым вводом? IFML, Hydra, что ещё?

Неактивен

0    0    #16
16.06.2002 10:22

stalker
Участник
Откуда: Сургут
Зарегистрирован: 09.05.2002
Сообщений: 41
Вебсайт

wbr.

Re: Люди-люди, человеки!!!!!!

serega написал:

В том то все и дело не понимаю как это реализовать в программе

начнем с самого начала:

псевдо бесконечный цикл

Код:

void main()
{
  boolean flag_of_exit = TRUE;
  while (flag_of_exit)
  {
     // получаем команду из устройства ввода
     // обрабатываем ее
     if (you_are_deadman) { flag_of_exit = FALSE }
  }
  printf("%s","Хо-хо-хо! Вот ты и помер, дружище!");
}

smile smile smile

Неактивен

0    0    #17
16.06.2002 21:53

sereg@
Участник
Зарегистрирован: 10.06.2002
Сообщений: 6

Посморишь на него - человек, как человек, а внутри - город, дымящийся в руинах

Re: Люди-люди, человеки!!!!!!

Это сообщение духу. Просто когда тебя учат считать матрицы всевозможными способами и объктному програмированию, сложно понять как те же вещи применить для игрушки, фантазия слабая  8) Кстати сайт про игроделание не работает, нет его там, страничка не найдена sad Я не могу понять как мир-то сделать, мне эти примеры на паскале, млин, ну не понимаю я их, как все это в с++ реализовать, а книжки у меня есть только толку от них hmm

Неактивен

0    0    #18
16.06.2002 22:02

stalker
Участник
Откуда: Сургут
Зарегистрирован: 09.05.2002
Сообщений: 41
Вебсайт

wbr.

Re: Люди-люди, человеки!!!!!!

Я думаю, что можно сделать например так:

заводишь массив или список структур для комнат, предметов.

Например:
struct room{
room* if_go_north,if_go_south,...;
char* short_desc;
char* long_desc;
}

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

А дальше в игре просто оперируешь нужными тебе структурами или объектами.

Неактивен

0    0    #19
17.06.2002 09:01

Ar.A.B.
Участник
Откуда: Moscow
Зарегистрирован: 30.05.2002
Сообщений: 49

Все Боги были бессмертны.....

Re: Люди-люди, человеки!!!!!!

Ну... я все-таки бы оперировал классами. Задачка-то просто под них и сформулирована.  wink

Но это - только одна из многих заморочек. Граждане вон с тектовым вводом парятся, к примеру.

По своему (хилому, бестолковому и незначительному) опыту скажу, что описание игрового пространства в терминах хоть объектов, хоть чего - по сравнению с распознаванием тестового ввода - Гы! wink просто и прозрачно. (реверанс в сторону Olegus t.Gl.).

Скажу больше. На самом деле, все эти технические стороны - пустяки по сравнению с ИДЕЕЙ и СЮЖЕТОМ.

И - собственно текстами wink...

Иначе - почему же так немного есть игрушек в которые приятно не выйграть-пройти а просто играть....

(опять поклон Olegus t.Gl. - я терпеть не могу демки. Никогда нельзя в них понять, толи ты сам идиот и тупица, толи - просто еще не до конца эпизод дописан.... Но на мой взглад твоя затея стоит того, чтобы ее до конца довели.).

Неактивен

0    0    #20
17.06.2002 11:09

stalker
Участник
Откуда: Сургут
Зарегистрирован: 09.05.2002
Сообщений: 41
Вебсайт

wbr.

Re: Люди-люди, человеки!!!!!!

Согласен ООП (Объектно Ориентированный Подход smile ) в данном случае оптимален. А по поводу текстового ввода тут задачу нужно разбить на несколько частей:

1. получение команды от пользователя (собственно работа с устройством ввода)
2. разбиени команды на части с предварительным анализом введенной информации (парсинг)
3. реакция игры на команду

Вот и решать нужно эти задачи отдельно и обстоятельно.

Неактивен

0    0    #21
17.06.2002 11:40

Ar.A.B.
Участник
Откуда: Moscow
Зарегистрирован: 30.05.2002
Сообщений: 49

Все Боги были бессмертны.....

Re: Люди-люди, человеки!!!!!!

stalker написал:

Согласен ООП (Объектно Ориентированный Подход smile ) в данном случае оптимален. А по поводу текстового ввода тут задачу нужно разбить на несколько частей:

1. получение команды от пользователя (собственно работа с устройством ввода)
2. разбиени команды на части с предварительным анализом введенной информации (парсинг)
3. реакция игры на команду

Вот и решать нужно эти задачи отдельно и обстоятельно.

Голова - хорошо, а полторы - лучше!  ;D
Обмозговать попробуем?

Неактивен

0    0    #22
17.06.2002 11:54

stalker
Участник
Откуда: Сургут
Зарегистрирован: 09.05.2002
Сообщений: 41
Вебсайт

wbr.

Re: Люди-люди, человеки!!!!!!

Согласен. Ты на чем пишешь ? Я вот хочу на object pascal - оно же Delphi, накатать библиотеку классов облегчающую создение своей игрушки.

Неактивен

0    0    #23
17.06.2002 12:00

Ar.A.B.
Участник
Откуда: Moscow
Зарегистрирован: 30.05.2002
Сообщений: 49

Все Боги были бессмертны.....

Re: Люди-люди, человеки!!!!!!

stalker написал:

Согласен. Ты на чем пишешь ? Я вот хочу на object pascal - оно же Delphi, накатать библиотеку классов облегчающую создение своей игрушки.

На ++. wink "Пишу" - громко сказанно.

Впрочем язык - не столь важен.

И потом, думается мне, что проще (интереснее и полезнее) написать самому хомутов, глюков и багов, чем разбираться в чужих. big_smile

Я вывалю свое видение предмета, Ок?

Неактивен

0    0    #24
17.06.2002 12:18

stalker
Участник
Откуда: Сургут
Зарегистрирован: 09.05.2002
Сообщений: 41
Вебсайт

wbr.

Re: Люди-люди, человеки!!!!!!

А я вот подумал, что писать все одному будет стремно, скорее всего брошу из-за природной лени, я вот с переводом TADS уже больше года сижу и не очень далеко сдвинулся. smile На ++ писать тоже можно, только мне трудновато будет, не писал на нем серьезных проектов.

Неактивен

0    0    #25
17.06.2002 13:59

Ar.A.B.
Участник
Откуда: Moscow
Зарегистрирован: 30.05.2002
Сообщений: 49

Все Боги были бессмертны.....

Re: Люди-люди, человеки!!!!!!

Я понимаю тебя. Давай-ка к этому еще вернемся, Ок? И предлагаю
(поскольку сам - тупой, невежественый, ленивый)
для начала обсосать идеи.

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


stalker написал:

Согласен ООП (Объектно Ориентированный Подход smile ) в данном случае оптимален. А по поводу текстового ввода тут задачу нужно разбить на несколько частей:

1. получение команды от пользователя (собственно работа с устройством ввода)
2. разбиени команды на части с предварительным анализом введенной информации (парсинг)
3. реакция игры на команду

Вот и решать нужно эти задачи отдельно и обстоятельно.

Оспариваю:
Первые два пункта разумно объединить в один. И назвать интерфейсом.
От того, КАК происходит ввод команды сильно зависит то, ЧТО с вводом прийдется сделать,
прежде чем его можно будет использовать.

Наиболее простой метод получения команды от игрока- использование меню.
В любом его виде. Когда просто предоставляется список возможных выборов.
Даже если это "чтобы зажечь свечу введите 1, чтобы закрыть окно -2"....
(Выскажу свое IMHO: даже использование столь примитивного интерфейса,
при наличии всего остального в должной степени, не способно погубить хорошую игру.
Равно как и наоборот - даже экспертная система с элементами искуственнного
интеллекта не способна сама по себе вытянуть игру, сделать ее интересной.)

Так вот. По сути для такого минимального варианта не требуется ничего, кроме собственно моделирования, второй (и основной части).

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

(Возможен, к примеру, промежуточный вариант - манипулирование определенным набором понятий. <Действовать>=Зажечь, <объект>=Свеча, <средство>=спичкой....
Или там, явное ожидание ввода определенной(до символа) фразы "зажги свечку спичкой"
Как и всякий компромисс - морская свинка, ни рыба ни мясо... )

Недоумеваю, почему я нигде не нашел подсказки по словарю (и добавления в него пользовательских слов-синонимов, сокращений..)... то есть просто - тупого перечесления понимаемых слов?
Разумеется фразу "засвети свечу и озари комнату" не назовешь расхожей... Но почему бы и нет?

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

Как все просто, не так ли? wink

Я ничего не про(у)пустил?

С чего начнем?

Неактивен

0    0    #26
17.06.2002 14:50

stalker
Участник
Откуда: Сургут
Зарегистрирован: 09.05.2002
Сообщений: 41
Вебсайт

wbr.

Re: Люди-люди, человеки!!!!!!

Не согласен. Нельзя объединять и так довольно общие пункты, нужно дробить-дробить и еще раз дробить.  8)

Например:

1. Интерфейс
1.1. Получение информации с устройства ввода
1.2. Разбить команду на составляющие
1.3. Составить шаблон для дальнейшей обработки
....

и т.д.

Подсказки по словарю не делают из соображений "секретности"  wink Т.е. да бы исключить прямой перебор. Хотя, в принципе, я считаю, что при достаточно большом словаре в этом нет необходимости. Некоторы, возможно, таким образом скрывают бедность словаря.

Моделирование состояний различных объектов - это сама жизнь. smile Любую систему можно представить совокупностью объектов и взаимосвязей между ними (практически одно из определений системы в системном анализе).

Создать среду для работы с такими объектами и их связями и есть задача "движка".

Собственно можно начать с продумывания интерфейса, парсера, объектного пространства, объектов (комнат, предметов, персонажей и т.п.).

Неактивен

0    0    #27
18.06.2002 10:28

Ar.A.B.
Участник
Откуда: Moscow
Зарегистрирован: 30.05.2002
Сообщений: 49

Все Боги были бессмертны.....

Re: Люди-люди, человеки!!!!!!

stalker написал:

Не согласен. Нельзя объединять и так довольно общие пункты, нужно дробить-дробить и еще раз дробить.  8).

Предпочитаю идти сверху вниз.

stalker написал:

Собственно можно начать с продумывания интерфейса, парсера, объектного пространства,
объектов (комнат, предметов, персонажей и т.п.).

Не все столь линейно.

Начнем с парсера?

В целом, чтобы не топтать зазря клавиатуру, можно за рабочий вариант принять идеи,
изложенные в статье Olegus t.Gl. https://ifiction.ru/a/ifparser.html.
(прочитать, что-ли...)

Что хочется иметь на выходе подпрограммы анализа (того, что я называю интерфейсом в целом?)

Какую часть работы по взаимодействию с пользователем следует возложить на анализатор, а какую - моделингу?

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

Анализатор - занятная задачка.
Нужно ли учитывать порядок слов в обрабатываемой фразе? А как на счет предлогов?
Можно ли допустить присутствие неопознанных слов?
Стоит ли замахиваться на сложные предложения или ограничиться короткими?

А?

Неактивен

0    0    #28
18.06.2002 15:02

Ar.A.B.
Участник
Откуда: Moscow
Зарегистрирован: 30.05.2002
Сообщений: 49

Все Боги были бессмертны.....

Re: Люди-люди, человеки!!!!!!

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

Посоветуйте. Мнение выскажите. Вразумите чайника.

Нужны ли на самом деле развесистые словестные конструкции ? (и какой минимальный набор необходим)?

Насколько целесообразно заставлять пользователя применять жесткие (like English) правила грамматики и следования слов?

Настолько ли действительно необходим этот идеальный парсер? Недоумеваю! :-/

Неактивен

0    0    #29
18.06.2002 21:31

stalker
Участник
Откуда: Сургут
Зарегистрирован: 09.05.2002
Сообщений: 41
Вебсайт

wbr.

Re: Люди-люди, человеки!!!!!!

Что хочется иметь на выходе подпрограммы анализа (того, что я называю интерфейсом в целом?)

На мой взгляд на выходе мы в идеале должны получить ссылки на объекты. Глагол  и предметы упомянутые в команде. Т.е.  я ввожу "укусить змею с помощью вставной челюсти моей пра бабушки" - на выходе получаем:

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

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

Какую часть работы по взаимодействию с пользователем следует возложить на анализатор, а какую - моделингу?

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

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

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

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

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

А как на счет предлогов?

Нужны. Так же как и местоимения. Должны учитываться в действиях игрока.

"положить иголку на шкаф" и "положить иголку в шкаф"

Это разные вещи.

Можно ли допустить присутствие неопознанных слов?

На мой взгляд, нельзя.

Стоит ли замахиваться на сложные предложения или ограничиться короткими?

Для начала, думаю, что не обязательно.

Неактивен

0    0    #30
18.06.2002 21:39

stalker
Участник
Откуда: Сургут
Зарегистрирован: 09.05.2002
Сообщений: 41
Вебсайт

wbr.

Re: Люди-люди, человеки!!!!!!

Нужны ли на самом деле развесистые словестные конструкции ? (и какой минимальный набор необходим)?
Насколько целесообразно заставлять пользователя применять жесткие (like English) правила грамматики и следования слов?
Настолько ли действительно необходим этот идеальный парсер? Недоумеваю! :-/

На мой непосвященный взгляд, идеальный парсер приятен, но далеко не необходим. Вспомним времена Z80 - Spectrum, Commodore, Amga... Парсер никакущий, словарь маленький, НО какие игры!!!!  roll

Неактивен

0    0    #31
19.06.2002 03:08

dyx
Участник
Зарегистрирован: 15.12.2001
Сообщений: 99

Re: Люди-люди, человеки!!!!!!

  Красяво говорите, но я мало чего понимаю. Поэтому отвечу на последний вопрос.
   Идеальный парсер - это великая вещь! Лично мне неприятно, когда парсер программы сделан на манер "тяп-ляп - и вышло что-то" (ха, теперь я понял, почему сайт так называется!). Да и вообще - идеальный парсер - это отличный повод поднапрячь мозги. А если хотите - то делайте парсинг а-ля "Adventure"

   Отчаянный Дух (ОДИН)

Неактивен

0    0    #32
19.06.2002 09:51

Ar.A.B.
Участник
Откуда: Moscow
Зарегистрирован: 30.05.2002
Сообщений: 49

Все Боги были бессмертны.....

Re: Люди-люди, человеки!!!!!!

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

>> учитывать порядок слов можно, но закрепостит игрока.
"ящик" "сундук" "поставь" "на" wink а в этом случае как? Оба предмета в винительном падеже. smile И размера похожего wink

Неактивен

0    0    #33
19.06.2002 10:14

Ar.A.B.
Участник
Откуда: Moscow
Зарегистрирован: 30.05.2002
Сообщений: 49

Все Боги были бессмертны.....

Re: Люди-люди, человеки!!!!!!

>> >> Можно ли допустить присутствие неопознанных слов? 
>> На мой взгляд, нельзя

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

Надо поразмыслить....

Неактивен

0    0    #34
20.06.2002 10:34

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

Re: Люди-люди, человеки!!!!!!

    Что касается порядка слов, то если использовать предложенный мною алгоритм, то в самом упрощённом его варианте, жестко задана только позиция глагола (он идет первым, но фразу "яблоко возьми" употребляют гораздо реже чем "возьми яблоко"). Остальные члены предложения выискиваются по падежу и предлогу. То есть "поставь ящик на сундук" и "поставь на сундук ящик" на выходе будет одним и тем же, если прописать, что для глагола "поставь" основной объект (что ставим) должен находится в Вин. падеже и не иметь предлога, а вспомогательный (на что ставим) - в винительном падеже и иметь предлог "на".
     Что касается лишних слов, то если не планируется дёргать игрока фразами "я тебя не понимай", то можно просто в процессе обработки предложения пропускать незнакомые слова. Если же под конец основные объекты, необходимые для выполнения какого-то действия, отсутствуют, выдавать предупреждение или же производить действие "по умолчанию". Например, фразой "привяжи лошадь к забибулине" (слово "забибулина" компьютеру неизвестно), можно привязать лошадь к чему-либо, сопровождая это фразой типа: "Посмотрев по сторонам и не найдя ничего лучшего, вы привязали лошадь к забору."

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

Неактивен

0    0    #35
20.06.2002 15:05

Etev
Участник
Откуда: Piter
Зарегистрирован: 03.04.2001
Сообщений: 36

Со всем своим, Этев

Re: Люди-люди, человеки!!!!!!

Господа, вот уже год, как здесь ведуться разговоры о концепциях "будущей" самой лучшей платформы, её алгоритмах, устройстве, парсере и т.д. и т.п... Ораторы гордо надувают щёки, морщат лбы, вставляют умные слова и, надо сказать, напоминают мне повозку-тройку из знаменитой басни.
Конечно, если начинающие программисты собираются оттачивать базовые умения школьного курса и показать всем, как они круты, то можно и дальше, в частности, выкидывать меговые поделки на флеше или в нцатый раз пережёвывать избитые темы...
К чему это я? Сейчас объясню, дело в том, что я не теоретик, а практик. По ходу моей нынешней работы (и учёбы) мне приходиться заниматься компьютерной лингвистикой. Это, в общем, и проблемы АИ, и говорилки, и базы знаний, и многое другое очень интересное. В частности к иф, компьютерная лингвистика может (и уже, поверьте, года два как в одном Питере) применятся в вопросах парсера. Причём, ХОРОШЕГО парсера! Понимаете? Это вам не мутя, и даже не инфокомовские игры.
Я никогда не вмешивался в обсуждение на форуме алгоритмов и новых подходов к платформам. 0: мне лениво; 1: отслеживаю (а вдруг?!!) появления гениального самородка; 2: "не мешайте молодым умам учиться думать"; 3: получаю наслаждение и хорошую дозу смеха.... Можно продолжать список.
Но, господа, вы же умные люди!!! Да просто почитать публичные наработки в инете, скачать уже выложенные модули разбивки, взять словари лексем... Боже, у вас отпадут 95% нынешних проблем! Ну неужели так сложно понять, что существуют и другие люди, кроме вас? Нельзя работать каждый раз с самого начала пути!
Тут половина умеет общаться с сями, дельфями, дотнетами - значит вы как-бы программисты (пусть не высшие профи, но всё же!). Так вспомните о существование сторонних библиотек и разработок...
Всё сказаное относилось только к парсеру, теме, с которой я точно сталкивался. Знаю, что разработки скриптовых языков и механизмов локаций тоже есть и, вроде, вполне рабочие. Неужели так сложно зайти в поисковик и уделить час внимания интересной вам теме?
Извиняюсь, за столь эмоциональный тон. Надеюсь, никого не обидел и заставил хоть чуть задуматься.

Неактивен

0    0    #36
21.06.2002 02:01

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

Re: Люди-люди, человеки!!!!!!

Большая часть того, что удаётся найти в течении первого часа, относится либо к SQL, либо к компиляторам, либо ещё к чему-нибудь, столь же далёкому.
Своё же создается не для выпендрёжа, а из соображений контроля над ситуацией, чтобы не приходилось подстраивать свои желания под что-то...

Что касается пунктов Etev'а:

Я никогда не вмешивался в обсуждение на форуме алгоритмов и новых подходов к платформам.
0: мне лениво;
1: отслеживаю (а вдруг?!!) появления гениального самородка;
2: "не мешайте молодым умам учиться думать";
3: получаю наслаждение и хорошую дозу смеха....
Можно продолжать список.


то было бы очень интересно увидеть продолжение списка...

Неактивен

0    0    #37
21.06.2002 05:21

WildWizard
Участник
Откуда: Россия, Красноярск
Зарегистрирован: 01.03.2001
Сообщений: 450
Вебсайт

Nobody expects the Spa.. Oh, never&&mind.

Re: Люди-люди, человеки!!!!!!

Да, словари лексем это круто! Пара мегабайтов бесполезной х. К тому же 10% - ошибки.
А исходники существующих систем, хоть каким-то боком относящихся к разбору, это мегабайты исходников, большинство из которых заброшены их авторами году эдак в 82 (пусть даже в 97).
Одним словом, что-то в этой идее есть, только достежимый (пока, насколько я понимаю, только теоретически) уровень анализа совершенно не нужен в IF. Да и размеры этого хозяйства вызывают опасение.

Неактивен

0    0    #38
21.06.2002 10:22

Ar.A.B.
Участник
Откуда: Moscow
Зарегистрирован: 30.05.2002
Сообщений: 49

Все Боги были бессмертны.....

Re: Люди-люди, человеки!!!!!!

Etev написал:

Господа

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

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

Теперь мой ответ на Ваш читаемый между строк вопрос "Зачем?"... Даже если его и небыло, думаю Вам полезно будет знать, что я - полная серость, посредственность и бездарность. И потому любые мои "достижения" имеют хоть какой-то вес только для меня.
А потому все что я делаю - я делаю исключительно для своего собственного удовольствия.

Неактивен

0    0    #39
21.06.2002 14:40

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

Re: Люди-люди, человеки!!!!!!

Etev, если я сплю, это не значит, что я ничего не вижу!  tongue

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

А посему, ритуально плюсую: [glb]+[/glb]

Впредь просьба быть корректней. Это относиться ко всем участникам данного треда поскольку страсти я вижу несколько накалились.

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru