Forum.iFiction.Ru

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

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

Вы не зашли.

0    0    #1
08.07.2009 19:49

fireton
некто с бородой (+354, -92)
Откуда: Москва
Зарегистрирован: 22.08.2005
Сообщений: 1103
Вебсайт

Тон

Разработка стандартной библиотеки std.lib

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

Неактивен

0    0    #2
08.07.2009 19:56

ASBer
Модератор (+161, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Разработка стандартной библиотеки std.lib

fireton пока только в зачатке smile

Отредактировано ASBer (08.07.2009 19:57)

Неактивен

0    0    #3
16.07.2009 16:39

ASBer
Модератор (+161, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Разработка стандартной библиотеки std.lib

fireton написал:

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

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

Предлагаю вниманию самый "нужный" модуль библиотеки - неиспользуемые глаголы.

Если какие-то глаголы упустил - пишите, добавлю smile

файл удалил - ниже есть более свежий

Отредактировано ASBer (24.07.2009 10:27)

Неактивен

0    0    #4
19.07.2009 22:11

ASBer
Модератор (+161, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Разработка стандартной библиотеки std.lib

noname написал:

модуль "минимальный" ( идти с з ю в, осмотреть, осмотреться, взять, выложить )

Модуль "минимальный" будет содержать:
- классы: место (для локаций), предмет (для уникальных и счетных предметов), персонаж (для ГГ и НПС)
- объекты: ГГ - стандартный главный герой
- действия: осмотреть, осмотреться, идти, взять, положить, инвентарь.
- фразы: команда - для управления НПС в формате "НПС, сделай то-то"

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

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

P.S. на счет краткости и понятности обещать не буду, т.к. даже в таком объеме модуль получается не очень маленьким...

Отредактировано ASBer (19.07.2009 22:21)

Неактивен

0    0    #5
22.07.2009 13:52

ASBer
Модератор (+161, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Разработка стандартной библиотеки std.lib

Быстренько накидал модуль с картой и перемещениями по компасу - Map.tml
Теперь в библиотеке 3 модуля. Но все 3 сырыееее...

файл удалил - ниже есть более свежий

Отредактировано ASBer (24.07.2009 10:25)

Неактивен

0    0    #6
22.07.2009 18:16

ASBer
Модератор (+161, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Разработка стандартной библиотеки std.lib

ааа!!! он издевается! smile

> старик, дай себе ложку
Старик взял ложку со стола
И дал себе.

Неактивен

0    0    #7
22.07.2009 19:09

ASBer
Модератор (+161, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Разработка стандартной библиотеки std.lib

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

Неактивен

0    0    #8
23.07.2009 14:50

ASBer
Модератор (+161, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Разработка стандартной библиотеки std.lib

В map добавил перемещения вверх/вниз (в тесте чердак в хижине).

noname, дождись пока я доделаю перемещения в библиотеке. В планах все то о чем ты написал.
Пока можешь делать карту не обращая внимания на отсутствие стен smile

файл удалил - ниже есть более свежий

Отредактировано ASBer (28.07.2009 13:26)

Неактивен

0    0    #9
31.07.2009 11:52

ASBer
Модератор (+161, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Разработка стандартной библиотеки std.lib

Добавил в библиотеку притяжательные местоимения, притяжательные возвратные местоимения и поддержку для притяжательных прилагательных.
Теперь парсер понимает команды в формате:
>осмотри его ложку
>осмотри мою ложку
>осмотри свою ложку
>осмотри дедову ложку
а также
>осмотри ложку деда

//удалил файл

Отредактировано ASBer (12.08.2009 16:04)

Неактивен

0    0    #10
02.08.2009 19:04

ASBer
Модератор (+161, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Разработка стандартной библиотеки std.lib

Обновил библиотеку:
- Отладил работу с веществом/материалом. (Смотри на столе в хижине краюху хлеба. Моток веревки должен быть устроен абсолютно аналогично. При этом хлеб можно назвать и как "хлеб", и как "краюха хлеба", и как "хлеб старика" и как "краюха деда")
- Действие "выложить" работает, хотя пока сильно недоделано.
- Добавил персонажам метод свобода_воли(). Как работает можно посмотреть в примере с лифтом - отправить лифтера из лифта теперь не получится.

//удалил файл

Отредактировано ASBer (12.08.2009 16:05)

Неактивен

0    0    #11
04.08.2009 17:06

ASBer
Модератор (+161, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Разработка стандартной библиотеки std.lib

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

> осм хлеб
Это обычная краюха хлеба.

> возьми это
Ты взял это со стола.

> дай ее ему
Ты дал старику краюху хлеба.

//удалил файл

Отредактировано ASBer (12.08.2009 16:07)

Неактивен

0    0    #12
05.08.2009 12:16

ASBer
Модератор (+161, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Разработка стандартной библиотеки std.lib

Переделал проверку рода и числа у предметов.

//
Для проверки рода и числа для предметов добавлено свойство "род_число", в котором должны быть перечислены все допустимые для предмета признаки рода и числа.
Например, для предмета "спички" род_число = "МрЖрЕчМч" - т.е предмет будет отзываться на слова "спичка", "спички", "коробок спичек", "она", "он", "они".

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

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

//удалил файл

Отредактировано ASBer (12.08.2009 16:07)

Неактивен

0    0    #13
13.08.2009 21:57

ASBer
Модератор (+161, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Разработка стандартной библиотеки std.lib

Добавил действия "спуститься" и "подняться". (см.файл)

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

--------------------------------------------------------------------------------
Прикрепленные файлы:
Map.tml, Размер: 6,996 байт, Скачано: 12

Неактивен

0    0    #14
31.08.2009 21:40

ASBer
Модератор (+161, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Разработка стандартной библиотеки std.lib

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

--------------------------------------------------------------------------------
Прикрепленные файлы:
Libs4TOM.rar, Размер: 191,841 байт, Скачано: 3

Неактивен

0    0    #15
01.09.2009 11:57

ASBer
Модератор (+161, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Разработка стандартной библиотеки std.lib

Cheshire написал:

И если "в чердак" правится, как я понимаю, самим автором через выражение this.пред_в = "на", то "поднялся" - недочет библиотеки.

Угу, все так.
Исправил глаголы для перемещений, для локаций в тесте прописал правильные предлоги и title.

Cheshire написал:

Пожелание: добавить однобуквенные сокращения для "инв", "да" и "нет" ("и", "д", и "н").

Это легко, сделаю чуть позже.
// сокращение "и" для инвентаря не получится - смотри ниже про "." и "и".

Cheshire написал:

несколько действий разделять не только через " и ", но и через запятую (взять хлеб, взять ложку).

Здесь трудность будет при обращениях к НПС :
>Старик, возьми хлеб, возьми ложку
первая запятая здесь разделяет не действия, а обращение и действие. Но я подумаю как это сделать.


--------------------------------------------------------------------------------
Прикрепленные файлы:
Libs4TOM.rar, Размер: 192,590 байт, Скачано: 1

Неактивен

0    0    #16
01.09.2009 12:58

ASBer
Модератор (+161, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Разработка стандартной библиотеки std.lib

Nex написал:

А важны ли запятые? Может, их просто игнорировать?

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

//update
В качестве домашнего задания:
Попробуйте с использование стандартной библиотеки сделать локацию "улица" с объектами "аптека" и "фонарь".
Реакция на команду
> Аптека. Улица. Фонарь.
должна быть интересной smile

Неактивен

0    0    #17
01.09.2009 15:38

ASBer
Модератор (+161, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Разработка стандартной библиотеки std.lib

Nex написал:

С точкой всё понятно, но точка - это не запятая.

Вот что предлагает Cheshire:

несколько действий разделять не только через " и ", но и через запятую (взять хлеб, взять ложку).

Сделать это "в лоб" - значит приравнять запятую к точке.

Неактивен

0    0    #18
02.09.2009 11:34

ASBer
Модератор (+161, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Разработка стандартной библиотеки std.lib

- Доработал title действий "положил" и "дал" на предмет согласования с "Вы".
- Убрал синонимы для действия "взял", теперь пример "подними флаг" работает.

--------------------------------------------------------------------------------
Прикрепленные файлы:
Libs4TOM.rar, Размер: 193,109 байт, Скачано: 6

Неактивен

0    0    #19
14.09.2009 13:37

ASBer
Модератор (+161, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Разработка стандартной библиотеки std.lib

Обновил библиотеку со всеми примерами и демо-играми до версии v.0.9.2.5 beta.

--------------------------------------------------------------------------------
Прикрепленные файлы:
Libs4TOM.rar, Размер: 200,981 байт, Скачано: 10

Неактивен

0    0    #20
20.09.2009 21:10

ASBer
Модератор (+161, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Разработка стандартной библиотеки std.lib

Добавил в библиотеку новый модуль - Containers.tml
В модуле пока только 2 класса: класс для поверхностей, и класс для простых контейнеров.
В тесте это стол и сундук в хижине.

--------------------------------------------------------------------------------
Прикрепленные файлы:
Libs4TOM.rar, Размер: 196,046 байт, Скачано: 2

Неактивен

0    0    #21
24.09.2009 15:16

ASBer
Модератор (+161, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Разработка стандартной библиотеки std.lib

Cheshire написал:

Ммм, контейнеры.

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

Добавил модуль Physics.tml
В физике расчитывается пока только видимость/невидимость и доступность/недоступность предметов в зависимости от их положения. Так предмет внутри закрытого контейнера будет невидим и недоступен. Функциональность модуля будет расширяться по мере необходимости.

Просьба потестить.

--------------------------------------------------------------------------------
Прикрепленные файлы:
Libs4TOM.rar, Размер: 198,677 байт, Скачано: 6

Неактивен

0    0    #22
27.09.2009 19:16

ASBer
Модератор (+161, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Разработка стандартной библиотеки std.lib

Добавил модуль Light.tml. Модуль содержит классы для тёмных комнат и источников света, а также действия зажечь и погасить.
В модуль Physics.tml добавлены функции просчитывающие распространение света и освещенность объектов.
Для тестирования под хижиной вырыт темный подвал с медной лампой. Также для проверки темноты можно попробовать закрыть себя в сундуке.

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

--------------------------------------------------------------------------------
Прикрепленные файлы:
Libs4TOM.rar, Размер: 201,045 байт, Скачано: 8

Неактивен

0    0    #23
02.10.2009 14:26

ASBer
Модератор (+161, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Разработка стандартной библиотеки std.lib

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

--------------------------------------------------------------------------------
Прикрепленные файлы:
Libs4TOM.rar, Размер: 201,240 байт, Скачано: 4

Неактивен

0    0    #24
04.10.2009 10:21

ASBer
Модератор (+161, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Разработка стандартной библиотеки std.lib

Паралельно с разработкой стандартной библиотеки ТОМа продолжается портирование библиотеки РТАДС.
В приложенном файле вы найдете демо-игру "Золотой череп" написанную с использованием библиотеки РТАДС.
Переработана всего лишь малая часть библиотеки, работы продолжаются.

--------------------------------------------------------------------------------
Прикрепленные файлы:
Libs4TOM.rar, Размер: 254,827 байт, Скачано: 4

Неактивен

0    0    #25
07.10.2009 18:23

ASBer
Модератор (+161, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Разработка стандартной библиотеки std.lib

В модуль Containers.tml добавил класс для дверей. Смотрите дверь в хижине.
В модуль Map.tml добавил возможность нелинейного соединения локаций. Смотрите лаз на чердаке.
В модуль Physics.tml добавил функцию для контроля перемещений. Из закрытого сундука просто так уйти теперь нельзя.
Исправил несколько ошибок и несуразностей, добавил дополнительные шаблоны к ранее созданным действиям.

--------------------------------------------------------------------------------
Прикрепленные файлы:
Libs4TOM.rar, Размер: 202,688 байт, Скачано: 8

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru