Forum.iFiction.Ru

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

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

Вы не зашли.

0    0    #51
09.04.2008 12:00

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

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

Re: Выложил альфа-версию

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

Отредактировано ASBer (21.04.2008 17:46)

Неактивен

0    0    #52
09.04.2008 18:42

noname
Участник (+36, -9)
Зарегистрирован: 04.04.2008
Сообщений: 729

noname

Re: Выложил альфа-версию

скачал- посмотрим...
неужели русская платформа не за горами?

Неактивен

0    0    #53
22.04.2008 14:11

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

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

Re: Выложил альфа-версию

Версия 0.2.2.0 alpha
проигрыватель+демоигра
исходники консольного проигрывателя

Основные изменения произошли в парсере, изменен формат описания действий.

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

Неактивен

0    0    #54
23.04.2008 11:00

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

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

Re: Выложил альфа-версию

Формат описания действия
Для описания действий создана специальная категория объектов action (действие).
Пример:
действие осмотреть
.шаблон="осмотреть=осмотри=оглядеть=огляди=осм @Объект:description*Вп"
.шаблон="посмотреть на @ Объект:description*Вп"
.Проверка(Актер, Объект_место, Объект){
  if(!Объект.Внешнее & Объект_место!= Актер & Объект_место!= Актер.loc) "{ Объект *Рп} не видно."
}

Объект «действие» содержит шаблоны и проверки.
Шаблоны задаются присвоением строки специальному свойству - .шаблон="строка шаблона"
Строка шаблона состоит из константных слов и переменных.
Для переменных задается класс или свойство, которым должен обладать объект и грамматическая форма, в которой должно находиться слово в команде.
Все методы объекта «действие» являются проверками и вызываются парсером в процессе анализа команды.

Принципы работы парсера v0.2.2.0
1.    Введенная команда разбирается на части.
2.    Слова-синонимы заменяются основными словами.
3.    Перебираются шаблоны, с целью найти шаблон, соответствующий введенной команде.
3.1.    Слова в команде попозиционно проверяются на соответствие константным словам текущего шаблона. Если хотя бы одно слово не совпадает, переходим к следующему шаблону.
3.2.    Для переменных, заданных в шаблоне, происходит подбор объектов.
3.2.1.    Если слово не найдено в списке лексем - выдается сообщение «Слово ‘слово’ мне неизвестно.»
3.2.2.    Если лексема найдена, но не соответствует грамматической форме, обозначенной в шаблоне - выдается сообщение «Слово в неверной форме!»
3.2.3.    Происходит подбор объектов в зависимости от их расположения
3.2.3.1.    Если переменная шаблона обозначена символом «&» месторасположение объекта роли не играет.
3.2.3.2.    Если переменная шаблона обозначена символом «@» происходит поиск подходящих объектов во всевозможных местах текущей локации.
3.2.3.2.1.    Если объект, соответствующий найденной лексеме, является классом, происходит подбор объектов-экземляров данного класса внутри локации.
3.2.3.2.2.    Если в текущей локации ни один подходящий объект не найден - выдается сообщение «Объект отсутствует.»
3.2.4.    Если найденный объект не относится к необходимому классу, или не имеет свойства, обозначенного в шаблоне - выдается сообщение «Объект не подходит для этого действия!»
3.2.5.    После подбора объектов, перебираются все возможные комбинации объектов и для каждой комбинации последовательно вызываются все методы-проверки объекта «действие» текущего шаблона.
3.2.5.1.    Если все методы-проверки вернули Null, комбинация считается прошедшей проверку.
3.2.5.2.    Если метод-проверка возвращает строковое значение, комбинация считается не прошедшей проверку, все последующие проверки для этой комбинации не выполняются. Полученная строка используется как сообщение парсера.
3.2.5.3.    Если после перебора всех комбинаций прошли проверку 2 или более комбинации – выводится сообщение «попробуйте ввести более подробную команду.»
4.    Если подходящий шаблон не найден - выводится сообщение «это невозможно…»
5.    После того, как найден подходящий шаблон -
5.1.    Если у актера отсутствует метод с названием, соответствующим названию действия, - выводится сообщение «Актер не может это сделать!»
5.2.    Иначе вызывается метод актера, соответствующий действию, и работа парсера на этом успешно завершается.

Отредактировано ASBer (23.04.2008 14:45)

Неактивен

0    0    #55
24.04.2008 17:30

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

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

Re: Выложил альфа-версию

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

То, что на данной версии платформы реализовать нельзя:
- несколько действий в одной команде: >стрельни и убегай
- несколько объектов в одной команде: >возьми горох и чечевицу
- прилагательное+существительное в команде: >возьми сушеный горох (реализовать можно, но пока слишком громоздко)

Особенно интересны действия с 2мя и более объектами.
Также буду благодарен за любые замечания и конструктивную критику smile

Неактивен

0    0    #56
24.04.2008 19:21

Korwin
Гоблин, зеленый от недосыпа (+188, -16)
Откуда: Екатеринбург
Зарегистрирован: 27.11.2007
Сообщений: 795
Вебсайт

У трав, растущих на мягкой земле - слабые корни. (с)Korwin

Re: Выложил альфа-версию

ASBer, я тут уже писал в другой ветке про проблему с распознаванием высказываний типа "метнуть бумеранг в голову кенгуру" (РТАДС "не любит" таких выражений, работа с ними не простая задача для автора, а иногда надо...) Т.е. хотелось юы чтобы в перспективе твой движок был способен разбиратьь русские языковые конструкции.

А по игре - ты может ее на БуКо 2008 выставишь? Или другую, на своем движке?

Неактивен

0    0    #57
25.04.2008 09:19

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

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

Re: Выложил альфа-версию

Korwin написал:

"метнуть бумеранг в голову кенгуру"

я над этим думаю... smile

Korwin написал:

А по игре - ты может ее на БуКо 2008 выставишь? Или другую, на своем движке?

БуКо 2008 соблазнительно. Только мышек я уже засветил, да и проходится игра за 5-7 ходов. Хотя есть одна мысль...  осталось придумать с какого боку там бумеранг. smile))))))))

Неактивен

0    0    #58
05.05.2008 11:09

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

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

Re: Выложил альфа-версию

noname написал:

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

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

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

Неактивен

0    0    #59
05.05.2008 11:23

Korwin
Гоблин, зеленый от недосыпа (+188, -16)
Откуда: Екатеринбург
Зарегистрирован: 27.11.2007
Сообщений: 795
Вебсайт

У трав, растущих на мягкой земле - слабые корни. (с)Korwin

Re: Выложил альфа-версию

А примерчик кода?

Неактивен

0    0    #60
05.05.2008 13:36

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

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

Re: Выложил альфа-версию

Korwin написал:

А примерчик кода?

вот примерно так:

Код:

location Комната
.title="Комната"
.description="в комнате Вася и Петя
(для разговора с Васей введите 'говорить с Васей')"

unique Вася.title="Вася"
unique Петя.title="Петя"
unique ПетяГоворящийСВасей.title="Петя"
pers=Петя

action Поговорить
.pat="поговорить=говорить=поговори=говори с Васей"
.pat="спросить=спроси Васю"

Петя.Поговорить(){
РазговорСВасей+ПетяГоворящийСВасей
pers=ПетяГоворящийСВасей
}

location РазговорСВасей
.title="Разговор с Васей"
.description="Слушай, Вася, давно тебя хотел спросить...<15>{.menu()}</15>"
.menu_name=" " //не показываем наименование меню
.menu_item(
__про рыбалку){ 
%- Вася, а как ты относишься к рыбалке?
%- да не рыбак я совсем...
%- жаль, очень жаль.<15>{loc.menu()}</15>
}
.menu_item(
__прощай){ 
%- пока Вася, было приятно поболтать.
%- пока Петя.
pers=Петя //возвращаемся в комнату
}

//отдельная тема сокровищ
unique ПроСокровища
.menu_item(
__а где ты хранишь свои сокровища?){ 
global + ПроСокровища //2й раз про сокровища спросить несудьба
%- а где ты хранишь свои сокровища?
%- в тумбочке под столом...
%- спасибо, ты мне очень помог!<15>{loc.menu()}</15>
}

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

Неактивен

0    0    #61
14.05.2008 16:56

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

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

Re: Выложил альфа-версию

Версия 0.2.2.1 alpha
проигрыватель+демоигра
Исправлены некоторые ошибки в движке и игре;
Расширена демка - теперь можно поиграть за крота (2 линии прохождения, короткая для меня была неожиданностью smile);
Парсер научился понимать числа - > взять 5 горошин (правда пока нет мыслей как это лучше обыграть в демке)

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

Неактивен

0    0    #62
14.05.2008 21:11

noname
Участник (+36, -9)
Зарегистрирован: 04.04.2008
Сообщений: 729

noname

Re: Выложил альфа-версию

играть за любого персонажа ( ну, пока не за любого ) - вот это круто!
давно хотел...

тестинг обещает доставить много хороших впечатлений

Неактивен

0    0    #63
14.05.2008 22:36

noname
Участник (+36, -9)
Зарегистрирован: 04.04.2008
Сообщений: 729

noname

Re: Выложил альфа-версию

тестинг завершён на 30%
( играл по знакомым рельсам - за мышонка ).
невозможно ВЗЯТЬ ОЧКИ
более того, невозможно ВЗЯТЬ 1 ОЧКИ
и вообще никак не получается их взять.

за сим мышонок ещё немного помучен и оставлен в покое.
найденные некорректности (по памяти):

>осм кровати
- слово кровати употреблено в неверной форме
>взять очки
- this + Obj*N
-очки number!

Неактивен

0    0    #64
14.05.2008 22:58

noname
Участник (+36, -9)
Зарегистрирован: 04.04.2008
Сообщений: 729

noname

Re: Выложил альфа-версию

за маму истории нет ( вот уж не стоило тогда этот пунктик вставлять )

за крота: играть не особенно интересно, но попробую таки всё обтестить

в чём собственно фишка игры за него? использует ли он какие-то новые навороты движка?

---

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

Неактивен

0    0    #65
15.05.2008 09:50

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

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

Re: Выложил альфа-версию

noname написал:

невозможно ВЗЯТЬ ОЧКИ
более того, невозможно ВЗЯТЬ 1 ОЧКИ
и вообще никак не получается их взять.
...
>взять очки
- this + Obj*N
-очки number!

Упс! а это уже нелогичность в движке вылезла...
Суть в следующем:
Очки являются уникальным объектом, а для них количество всегда =1.
Чтобы количество не менялось, запрещены арифметические действия с уникальными объектами.
Вероятно нужно разрешить арифметику и контролировать сам результат действия, тогда умножение Очков на 1 не будет вызывать ошибку.

noname написал:

найденные некорректности (по памяти):
>осм кровати
- слово кровати употреблено в неверной форме

Для кроватей не заданы формы множественного числа... добавлю.

noname написал:

за маму истории нет (вот уж не стоило тогда этот пунктик вставлять)

эт на вырост... smile

noname написал:

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

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

noname написал:

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

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

P.S. за тестинг огромное спасибо!

Неактивен

0    0    #66
15.05.2008 11:00

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

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

Re: Выложил альфа-версию

проигрыватель+демоигра
исправлены баги с очками и кроватями.

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

Неактивен

0    0    #67
16.06.2008 16:22

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

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

Re: Выложил альфа-версию

Анонос версии 0.2.3.0 альфа
Новое:
+ оконный интерфейс с графикой;
+ конструкции for(), while(), switch();
~ слегка улучшенный парсер.

Неактивен

0    0    #68
16.06.2008 18:21

Korwin
Гоблин, зеленый от недосыпа (+188, -16)
Откуда: Екатеринбург
Зарегистрирован: 27.11.2007
Сообщений: 795
Вебсайт

У трав, растущих на мягкой земле - слабые корни. (с)Korwin

Re: Выложил альфа-версию

ASBer написал:

проигрыватель+демоигра
исправлены баги с очками и кроватями.

Хочу ВЫИГРЫВАТЕЛЬ!!! wink

Без шуток - ASBer, молодец!

Неактивен

0    0    #69
24.08.2008 15:23

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

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

Re: Выложил альфа-версию

http://www.rapidshare.ru/762288 - ТОМ версии 0.2.3.0 альфа.
В составе консольный/оконный интерфейсы и демоигра про мышек.

Изменения в интерпретаторе:
- добавлены конструкции циклов for и while;
- добавлена конструкция switch - case;
- изменена обработка событий, добавлены функции CheckMove, BefMove, AftMove;
- добавлена команда restart;
- формируется лог-файл, прошу присылать логи smile

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

PS: оконный интерфейс пока крайне сырой...

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

Неактивен

0    0    #70
25.08.2008 17:21

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

Тон

Re: Выложил альфа-версию

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

Неактивен

0    0    #71
02.09.2008 13:13

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

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

Re: Выложил альфа-версию

План разработки на ближайшее будущее

v.0.2.3.1 альфа
- исправление работы конструкций if-else, for, while, switch-case;
+ ключевае слова return, break, continue;
(TOM-язык окончательно сформирован)

v.0.2.3.2 альфа
+ ключевое слово actor
+ относительные свойства объектов;
- исправление известных багов;
(модель ООП окончательно сформирована)

v.0.2.4.0 альфа
+ возможность сохранения/восстановления игры;
+ возможность отката на один ход;
(базовая функциональность ТОМа полностью разработана)

v.0.2.4.1 альфа
- исправление найденных багов;

v.0.9.0.0 бета
+ документирование;
+ примеры;
- бета тестирование;

v.1.0.0.0 - релиз базовой версии.

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

Неактивен

0    0    #72
05.09.2008 11:43

noname
Участник (+36, -9)
Зарегистрирован: 04.04.2008
Сообщений: 729

noname

Re: Выложил альфа-версию

отличная работа.
жаль, не знаю, куда слать логи.
собственно, по платформе есть несколько
совсем мелких замечаний:
1.
мышонок> выйди во двор
Мышонок выбежал из комнаты.
***ОК! я даже не обратил внимание на свою команду- сработало и ладно
***в следующий раз:
мышонок> выйди
Слово "выйди" мне неизвестно.
мышонок> выйти
Слово "выйти" мне неизвестно.
мышонок> выйти из домика
Мышонок не может это сделать!
мышонок> выйди во двор
Мышонок выбежал из комнаты.
***так знает ли интерпретатор слово выйди? непонятно...
2.
У окна стоит стол и три стульчика.
мышонок> осмотреть три стульчика
Мышонок не может это сделать!
мышонок> осмотреть стульчики
Типичная обстановка обычного мышиного домика.
*** впрочем, не уверен, что здесь необходимо что-то менять
3.
Мышонок>помощь
__Мышонок снова подумал о сыре. Он всегда думает о сыре, если ему больше не о чем думать.
дядюшка-крот кряхтя залез в кротовий лаз.
мама-мышь вошла в комнату.
Мышонок>инвентарь
у тебя есть 6 горошин и рогатка - твоя гордость.
мама-мышь вышла из комнаты.
Мышонок>список
Слово "список" мне неизвестно.
Мышонок>глаголы
Слово "глаголы" мне неизвестно.
Мышонок>команды
Слово "команды" мне неизвестно.
Мышонок>помоги
__Мышонок снова подумал о сыре. Он всегда думает о сыре, если ему больше не о чем думать.
В лесу страшно ухнул филин.
*** с одной стороны- я сам виноват, что не прочёл прилагающийся файл помощи,
*** с другой- обычно в текст квестах проблем с командой help не возникает
*** может, как в adventure, указывать её где-нибудь при запуске?

остальные замечания- ещё более мелкие и непосредственно платформы не касаются
только квеста

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

Неактивен

0    0    #73
08.09.2008 09:11

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

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

Re: Выложил альфа-версию

Огромное спасибо за отзыв!
Все замечания надеюсь исправить в ближайшей публикации v.0.2.3.1.
По пунктам необходимо:
1. исправить сообщение парсера, в игре добавить действие "выйди".
2. пока не знаю что тут можно сделать... буду думать.
3. системная команда "Помощь" была переопределена в игре действием "Подсказка", как пример переопределения команд это интересно, но в данном случае неуместно. Убрал.

Неактивен

0    0    #74
09.09.2008 09:30

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

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

Re: Выложил альфа-версию

В версии v.0.2.3.1 альфа исправлена работа конструкций языка if-else, for, while, switch-case. Фигурные скобки {} теперь необходимы только для объединения многострочных блоков. Все конструкции (за исключением switch-case) работают аналогично C. Принцип работы switch-case мною изменен, надеюсь, в лучшую сторону.
Также добавлены ключевые слова return, break, continue, работающие аналогично C.
Теперь язык платформы окончательно сформирован и позволяет разрабатывать алгоритмы любой сложности.

Документирование системы пока не начато, но начиная с этой версии в папке "Примеры" можно найти простые файлы с подробными комментариями, позволяющие освоить принципы работы платформы. Файлы, имеющие расширение .tom, открываются текстовым редактором.

Отредактировано ASBer (09.09.2008 09:33)

Неактивен

0    0    #75
09.09.2008 22:02

noname
Участник (+36, -9)
Зарегистрирован: 04.04.2008
Сообщений: 729

noname

Re: Выложил альфа-версию

извиняюсь, что я ещё на старой версии, но вот захотел проверить реакцию
на ввод одиночного слова:

мышонок> стол
Типичная обстановка обычного мышиного домика.
Дядюшка-крот кряхтя залез в кротовий лаз.

отлично! именно так я себе это и представлял:
задействуется команда осмотреть/изучить/тп
(а если есть несколько разных таких команд?)
далее:

мышонок> взять
Слово "взять" мне неизвестно.
мышонок> взять горох
- где же тут взять горох? - подумал мышонок. (получено новое задание)
В лесу страшно ухнул филин.
мышонок> в
Слово "в" мне неизвестно.
мышонок> из
Слово "из" мне неизвестно.

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

укажите, что Вы хотите взять. например:
взять яблоко

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru