Пример:
Выражение Об:Асп’Ип’РпЕч’ВпМчНд эквивалентно выражению Об:Асп’ИпЕчНд.
А вот автор игры не задолбается ли переключать раскладку? Это же касается всяких # и {}... Если игра небольшая, то не так напряжет, но при написании больших объемов кода будет напрягать неимоверно, имхо.
Неактивен
fireton написал:
А вот автор игры не задолбается ли
' вероятно можно заменить на *. (сделано)
а вот как без фигурных скобок обойтись... ф.з.
Отредактировано ASBer (13.04.2008 21:06)
Неактивен
!"№;%:?*()-_+=/,.
Вот собственно все знаки, доступные на русской раскладке.
Если попытаться обойтись только этим комплектом - это очень сильно снизит читабельность кода игры (авторы задолбаются в коде разбираться).
Максимум что можно сделать - максимально часто использовать эти знаки в синтаксисе, особенно, в часто используемых и многократно повторяющихся конструкциях.
Т.е. переключения раскладки можно значительно сократить, но никак не исключить полностью.
Неактивен
Версия 0.2.1.2 alpha (bug-fix)
плеер+демоига
исходники оболочки
Основные изменения произошли в движке и интерфейсе. Сама демка почти не изменилась.
Основные изменения:
- сделана загрузка произвольного файла по команде run или start. (правда при открытии окна диалога осталась непобежденная коряфка );
- добавил хелп (команда ? или help);
- добавлена функция автоматического форматирования текста;
- исправлено огромное количество ошибок (и вероятно добавлены новые).
Отредактировано ASBer (21.04.2008 17:47)
Неактивен
пока что сыровато
вышел я во двор, почитал help
хорошо бы "Краткая справка по командам оболочки"
выдавалась при старте игры- не сразу понятно, чего это "помощь" не работает
набрал осмотреться
а где выходы?
как их увидеть? - Только войти во двор снова? а как я буду перемещаться, если я выходов не вижу, а сзюв не работает?
загрузился снова
побродил туда-сюда;
вопрос: почему мама-мышь видна и в домике и во дворе?
тем более, что её местонахождение важно для игры, но где она- так сразу и не поймешь...
и ещё: попытка хорошая. очень. НО чем твоя оболочка лучше РТАДСа?
я думаю, такими вещами стоит заниматься, ознакомившись с существующими движками, что бы сделать своё творилово хоть чем-то да лучше...
Неактивен
ага у тебя хорошо прописана работа с горохом, т е с нумерованными объектами
неплохо...
а возможно ли такой квест на РТАДСе исхитриться сделать?
вероятно, прийдётся каждому месту, где может лежать горох (в том числе и инвентарям персонажей) добавлять переменную- кол-во гороха. далее, переписать вывод описаний на экран с учётом того, где может быть рассыпан горох, и функции взять/выложить.
вот интересно, а можно ли не создавать заранее гороховую переменную во всех локациях в РТАДСе, а создавать её (либо запускать конструктор объекта горох) в любой локации непосредственно после того, как горох будет там просыпан?
Неактивен
noname написал:
вот интересно, а можно ли не создавать заранее гороховую переменную во всех локациях в РТАДСе, а создавать её (либо запускать конструктор объекта горох) в любой локации непосредственно после того, как горох будет там просыпан?
ООП, батенька. ;)
Неактивен
хорошо бы "Краткая справка по командам оболочки"выдавалась при старте игры
- легко (сделано)
набрал осмотреться
а где выходы?
как их увидеть?
- а вот это дельное замечание! буду думать как сделать. (сделано)
а сзюв не работает?
- если в локацию добавить выходы "Север","Запад","Юг","Восток" - сзюв будет работать
вопрос: почему мама-мышь видна и в домике и во дворе?
- внимательнее отслеживай сообщения, мама-мышь может перемещаться сразу же следом за тобой.
и ещё: попытка хорошая. очень. НО чем твоя оболочка лучше РТАДСа?
- сейчас она значительно ХУЖЕ РТАДСа! (на то она и альфа). В потенциале она лучше тем что русский язык для неё родной. Даже сейчас парсер принимает только синтаксически правильные команды - нельзя "осмотреть мышью".
ага у тебя хорошо прописана работа с горохом, т е с нумерованными объектами
неплохо...
а возможно ли такой квест на РТАДСе исхитриться сделать?
- можно, там вроде бы специальное свойство у объектов есть, чтобы определять их как счетные. Но вот насколько правильно там работает "взять 2 монеты", "взять 5 монет" я незнаю...
Отредактировано ASBer (13.04.2008 21:07)
Неактивен
ASBer написал:
- можно, там вроде бы специальное свойство у объектов есть, чтобы определять их как счетные. Но вот насколько правильно там работает "взять 2 монеты", "взять 5 монет" я незнаю...
Нормально работает;).
Неактивен
ООП, батенька.
таки я не понял, можно ли во время игры создавать новые объекты или нет?
Нормально работает;).
означает ли это, что на РТАДСе можно сделать квест, полностью идентичный этим мышам?
вроде бы в мануале про спички как-то не так описано...
Неактивен
noname написал:
ООП, батенька. ;)
таки я не понял, можно ли во время игры создавать новые объекты или нет?
Можно. Называется "динамическое создание объектов", в пятой главе мануала (пока доступна только на английском). См. подраздел Dynamic Object Creation, оператор new.
noname написал:
Нормально работает;).
означает ли это, что на РТАДСе можно сделать квест, полностью идентичный этим мышам?
вроде бы в мануале про спички как-то не так описано...
Про спички - это только один возможный вариант (просто такой подход проще реализовать. Кроме того, я подозреваю, что на тот момент, когда эта глава оригинального английского мануала писАлась, в TADS действительно не было соответствующей функциональности). В той же пятой главе см. раздел Indistinguishable Objects. Кроме того, читайте в главе Более сложные приемы синтаксического анализа, раздел "Неразличимые объекты".
Неактивен
про столб, провод и веревку
unique вязальщик_столбов .title="%; МрЕч; Ип; Ип=ты; Рп=себя; Дп=себе; Вп=себя; Тп=собой; Пп=себе" .lex = "%; МрЕч; Ип; Ип=ты; Рп=себя; Дп=себе; Вп=себя; Тп=собой; Пп=себе" pers=вязальщик_столбов unique провод .title="провод%; МрЕч; Ип; Ип=; Рп=а; Дп=у; Вп=; Тп=ом; Пп=е" .lex = "провод%; МрЕч; Ип; Ип=; Рп=а; Дп=у; Вп=; Тп=ом; Пп=е" unique веревка .title="веревк%; ЖрЕч; Ип; Ип=а; Рп=и; Дп=е; Вп=у; Тп=ой; Пп=е" .lex = "веревк%; ЖрЕч; Ип; Ип=а; Рп=и; Дп=е; Вп=у; Тп=ой; Пп=е" unique столб .title="столб%; МрЕч; Ип; Ип=; Рп=а; Дп=у; Вп=; Тп=ом; Пп=е" .lex = "столб%; МрЕч; Ип; Ип=; Рп=а; Дп=у; Вп=; Тп=ом; Пп=е" global.Привязать(Нечто,Чемто,КЧемуто) { #Ура! ты привязал {Нечто*Вп} к {КЧемуто*Дп} {Чемто*Тп}!} pattern(привязать {@Нечто*Вп} {@Чемто*Тп} к {@КЧемуто*Дп}) { Привязать(Нечто,Чемто,КЧемуто) } pattern(привязать {@Нечто*Вп} к {@КЧемуто*Дп} {@Чемто*Тп}) { Привязать(Нечто,Чемто,КЧемуто) } pattern(привязать {@Чемто*Тп} {@Нечто*Вп} к {@КЧемуто*Дп}) { Привязать(Нечто,Чемто,КЧемуто) } pattern(привязать {@Чемто*Тп} к {@КЧемуто*Дп} {@Нечто*Вп}) { Привязать(Нечто,Чемто,КЧемуто) } pattern(привязать к {@КЧемуто*Дп} {@Нечто*Вп} {@Чемто*Тп}) { Привязать(Нечто,Чемто,КЧемуто) } pattern(привязать к {@КЧемуто*Дп} {@Чемто*Тп} {@Нечто*Вп}) { Привязать(Нечто,Чемто,КЧемуто) } "привязать"="привяжи"="прикрутить"="прикрути"="пришпандорить"="пришпандорь"
- скопировать в файл, открыть в проигрывате - и привязывайте что хотите, чем хотите и к чему хотите
Отредактировано ASBer (08.04.2008 15:01)
Неактивен
global.Привязать(Нечто,Чемто,КЧемуто)
{ #Ура! ты привязал {Нечто*Вп} к {КЧемуто*Дп} {Чемто*Тп}!}
pattern(привязать {@Нечто*Вп} {@Чемто*Тп} к {@КЧемуто*Дп})
{ Привязать(Нечто,Чемто,КЧемуто) }
pattern(привязать {@Нечто*Вп} к {@КЧемуто*Дп} {@Чемто*Тп})
{ Привязать(Нечто,Чемто,КЧемуто) }
pattern(привязать {@Чемто*Тп} {@Нечто*Вп} к {@КЧемуто*Дп})
{ Привязать(Нечто,Чемто,КЧемуто) }
pattern(привязать {@Чемто*Тп} к {@КЧемуто*Дп} {@Нечто*Вп})
{ Привязать(Нечто,Чемто,КЧемуто) }
pattern(привязать к {@КЧемуто*Дп} {@Нечто*Вп} {@Чемто*Тп})
{ Привязать(Нечто,Чемто,КЧемуто) }
pattern(привязать к {@КЧемуто*Дп} {@Чемто*Тп} {@Нечто*Вп})
{ Привязать(Нечто,Чемто,КЧемуто) }
ну что ж, код краток и интересен.
а сколько аргументов(максимум) может быть у команды ?
а можно ли задавать свои сообщения об ошибках (подсказки) ?
и вот ещё ВОПРОС: думал ли о диалогах?
p.s.
заинтересовал, однако...
p.p.s.
можно ли по ходу игры создавать ещё объекты, комнаты, персонажей?
Отредактировано noname (08.04.2008 18:54)
Неактивен
В ТАДСе тоже можно сделать хак, разбивающий команду из трех объектов в два приложения (привязать провод веревкой к столбу=> привязать провод к веревке и привязать веревку к столбу). Не очень сложно.
Стандартной возможности в классических системах не заложено потому, что уж очень усложняется код. Тут и с двумя мучаются, а уж стремя вообще лучше сразу "привязать веревкой шею к ветке. Спрыгнуть с ветки."
Интересно посмотреть на обработчики всех случаев, когда какой-либо из объектов не подходит.
Неактивен
интересно, что интерпретёр Асбера нормально понимает букву Ё
если б он не сказал ' слово верёвка мне неизвестно ' я б на это и не обратил внимания...
привлекает краткость кода, для больших проектов это важно
хитрые случаи по привязыванию верёвок друг к другу может, потребуются раз в тысячу лет, НО приятно знать, что такая возможность имеется.
и ещё:
как присоединять файлы?
ясно, что в большом проекте удобнее делать много файлов.
и тем более удобно выделить в отдельный файл описанные команды.
и ещё:
один из многих вариантов организации общения с персонажами, которым могут захотеть воспользоваться авторы- менюшные диалоги. собираешься ли ты их реализовать?
а как насчёт команд типа: Сеня, возьми мяч и т п ?
Неактивен
noname написал:
интересно, что интерпретёр Асбера нормально понимает букву Ё
если б он не сказал ' слово верёвка мне неизвестно ' я б на это и не обратил внимания...
Не для того, чтобы принижать достоинства платформы ASBer'а или выгораживать TADS, а только в целях восстановления исторической справедливости: в RTADS от "правильного понимания буквы Ё" отказались сознательно, для упрощения задания лексических свойств (иначе для любого слова, содержащего букву Ё, необходимое число свойств удваивается... а если таких букв в слове - не одна?) Чтобы восстановить распознавание буквы Ё, достаточно найти в advr.t функцию preparse и закомментить вызов функции "обезъёживания" следующим образом:
// comStr:=dezyo(comStr);
Отредактировано uux (08.04.2008 21:27)
Неактивен
закомментить вызов функции "обезъёживания" следующим образом
меня вполне устроит, если интерпретатор будет воспринимать 'верёвку' и не ругаться на букву Ё.
так что вариант РТАДСа меня вполне устраивает.
думаю, что и AsBer-у стоит так сделать- головняка авторам поубавится.
Неактивен
Flint написал:
GrAndrey написал:
"привязать веревкой шею к ветке. Спрыгнуть с ветки."
Как же я смеялся! :-D
Четко подмечено!
Также смеялсо - уронил себя под стол!
Неактивен
а сколько аргументов(максимум) может быть у команды ?
- специально не ограничивал, теоретически 2147483648 агрумента, фактически зависит от размера оперативки, а реально ограничевается фантазией автора.
а можно ли задавать свои сообщения об ошибках (подсказки) ?
- в текущей версии нельзя, но есть в планах.(сделано)
и вот ещё ВОПРОС: думал ли о диалогах?
- думал. пока не реализовано.
можно ли по ходу игры создавать ещё объекты, комнаты, персонажей?
- создавать можно, удалять нельзя
интересно, что интерпретёр Асбера нормально понимает букву Ё
- спасибо за найденную несуразность, это легко поправимо (сделано)
как присоединять файлы?
- команда include "FileName" - можно посмотреть в демке, которая состоит из 3х файлов.
один из многих вариантов организации общения с персонажами, которым могут захотеть воспользоваться авторы- менюшные диалоги. собираешься ли ты их реализовать?
- нет, пока не собираюсь, но подумаю...
а как насчёт команд типа: Сеня, возьми мяч и т п ?
- это будет. Не так как в РТАДСе, но будет
Отредактировано ASBer (21.04.2008 17:41)
Неактивен
GrAndrey написал:
В ТАДСе тоже можно сделать хак, разбивающий команду из трех объектов в два приложения (привязать провод веревкой к столбу=> привязать провод к веревке и привязать веревку к столбу). Не очень сложно.
Стандартной возможности в классических системах не заложено потому, что уж очень усложняется код. Тут и с двумя мучаются, а уж стремя вообще лучше сразу "привязать веревкой шею к ветке. Спрыгнуть с ветки."
Интересно посмотреть на обработчики всех случаев, когда какой-либо из объектов не подходит.
Поддерживаю. Надо мыслить проще: например проверять есть ли веревка в наличии и "на привязать провод к столбу" выдавать либо "Вы привязали провод веревкой" либо "Провод слишком жесткий, его нельзя привязать к столбу без веревки"
Я в свое время намаялся в "Оружии Ли Гуана" с соединением частей оружия в одно целое...
Неактивен
Меня очень радует интерес, проявленный к моей поделке, и сообщения об найденных ошибках, комментарии и пожелания мне очень помогают.
НО программа находится в стадии разработки, синтаксис языка нестабилен и меняется по ходу - я стараюсь найти наиболее лаконичные и логичные конструкции.
Не рекомендуется на текущей версии создавать что-то большее чем тестовые примерчики.
Отредактировано ASBer (09.04.2008 10:16)
Неактивен
GrAndrey написал:
Интересно посмотреть на обработчики всех случаев, когда какой-либо из объектов не подходит.
Согласен, тут есть над чем подумать! Беру таймаут до выхода следующей версии. или ищите меня на ветке..
Отредактировано ASBer (09.04.2008 10:50)
Неактивен
уж это-то мы в курсе.
прослеживается такая закономерность:
через какое-то время после того, как некто начинает писать нечто привлекательное
он или исчезает или забрасывает свой проект.
видимо, мафия.
но ты не сдавайся- на тебя весь русский ИФ смотрит.
если что- вытащим тебя из бетона,
даже если прийдётся фундамент многоэтажки расколотить
Неактивен