Forum.iFiction.Ru

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

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

Вы не зашли.

0    0    #1
15.03.2010 23:34

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

Блиц-опрос по QSP

Насколько надёжно и проверенно QSP работает:
- с массивами (в том числе ассоциативными) больших размеров;
- большим количеством локаций;
- функцией "menu";
- html-тегом <A>…</A> с префиксом "exec:";
- вызовом меню по ссылке?

А также:
- Какова область видимости переменных?

Я возлагаю на эти элементы свои основные надежды.

И ещё — подтип "контекстно-менюшная игра" уже успел кто застолбить? Есть образцы?

Неактивен

0    0    #2
15.03.2010 23:42

HzD_Byte
Модератор (+1, -1)
Откуда: Далеко
Зарегистрирован: 15.04.2006
Сообщений: 271
Вебсайт

Я люблю людей

http://qsp.su

Re: Блиц-опрос по QSP

По всем пунктам работает нормально всё. Проверено временем и играми.

Переменные как правило глобальные, кроме массива аргументов ARGS/$ARGS и переменной результата RESULT/$RESULT.

Аргументы можно передавать при переходе на локацию, при выполнении локации как функции, а также когда выполняется блок кода как анонимная функция (DYNAMIC/DYNEVAL).

"Контекстно-менюшная" - если я правильно понимаю, то подобные эксперименты были. Сходу можно назвать "Укузю" и недавнюю "Цветохимию".

Отредактировано HzD_Byte (15.03.2010 23:46)

Неактивен

0    0    #3
15.03.2010 23:46

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

Re: Блиц-опрос по QSP

Отлично, есть с чем работать!

Неактивен

0    0    #4
15.03.2010 23:47

yandexx
Z-машина (+46, -3)
Откуда: Санкт-Петербург
Зарегистрирован: 01.06.2007
Сообщений: 394
Вебсайт

Русский Информ
Информ Discord

Re: Блиц-опрос по QSP

Я конечно никого не хочу обижать, но... Я пробовал портировать кое-что на QSP, и почти сразу отчаялся, потому что язык и общая концепция мне кажутся примитивными. ООП нет в помине. Хотя может для менюшной платформы это нормально. Однако тут есть кому-то, я точно знаю, важные фичи -- HTML, картинки, звук и прочее.

Если бы я писал менюшную игру, то наверное на INSTEAD. Там всё очень удобно и складно.

Неактивен

0    0    #5
15.03.2010 23:48

HzD_Byte
Модератор (+1, -1)
Откуда: Далеко
Зарегистрирован: 15.04.2006
Сообщений: 271
Вебсайт

Я люблю людей

http://qsp.su

Re: Блиц-опрос по QSP

В INSTEAD много чего нет smile

Неактивен

0    0    #6
15.03.2010 23:49

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

Re: Блиц-опрос по QSP

yandexx написал:

Я конечно никого не хочу обижать, но... Я пробовал портировать кое-что на QSP, и почти сразу отчаялся, потому что язык и общая концепция мне кажутся примитивными. ООП нет в помине. Хотя может для менюшной платформы это нормально. Однако тут есть кому-то, я точно знаю, важные фичи -- HTML, картинки, звук и прочее.
Если бы я писал менюшную игру, то наверное на INSTEAD. Там всё очень удобно и складно.

HzD_Byte написал:

В INSTEAD много чего нет

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

Неактивен

0    0    #7
16.03.2010 00:51

Nex
Участник (+120, -130)
Зарегистрирован: 11.06.2007
Сообщений: 2053

---

Re: Блиц-опрос по QSP

yandexx написал:

Я конечно никого не хочу обижать, но... Я пробовал портировать кое-что на QSP, и почти сразу отчаялся, потому что язык и общая концепция мне кажутся примитивными. ... Если бы я писал менюшную игру, то наверное на INSTEAD...

Этим ты никого не обидишь smile

INSTEAD и правда удобнее - для программистов.

Ты ведь программист? Ну вот.

А тем, кто программирования не знает, или обладает только базовыми навыками, INSTEAD не осилить - зато QSP в самый раз.

Неактивен

0    0    #8
16.03.2010 08:52

Eten
Участник (+9, -307)
Откуда: Балаково, Санкт-Петербург.
Зарегистрирован: 21.05.2007
Сообщений: 1416
Вебсайт

---

Re: Блиц-опрос по QSP

Olegus t.Gl. написал:

Хотя для написания объёмной игры в обычном текстовом редакторе (или даже через QGen) мозги должны щёлкать не хуже чем у персонажа Хоффмана из "Человека дождя".

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

З.Ы.
При таком подходе писать квесты не так проблемно.wink

Отредактировано Eten (16.03.2010 08:53)

Неактивен

0    0    #9
16.03.2010 09:31

yandexx
Z-машина (+46, -3)
Откуда: Санкт-Петербург
Зарегистрирован: 01.06.2007
Сообщений: 394
Вебсайт

Русский Информ
Информ Discord

Re: Блиц-опрос по QSP

Nex написал:

yandexx написал:

Я конечно никого не хочу обижать, но... Я пробовал портировать кое-что на QSP, и почти сразу отчаялся, потому что язык и общая концепция мне кажутся примитивными. ... Если бы я писал менюшную игру, то наверное на INSTEAD...

Этим ты никого не обидишь smile

INSTEAD и правда удобнее - для программистов.

Ты ведь программист? Ну вот.

А тем, кто программирования не знает, или обладает только базовыми навыками, INSTEAD не осилить - зато QSP в самый раз.

Согласен smile

Неактивен

0    0    #10
16.03.2010 11:48

Ajenta
Модератор (+1279, -325)
Зарегистрирован: 03.05.2009
Сообщений: 993
Вебсайт

Re: Блиц-опрос по QSP

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

Неактивен

0    0    #11
16.03.2010 12:23

HzD_Byte
Модератор (+1, -1)
Откуда: Далеко
Зарегистрирован: 15.04.2006
Сообщений: 271
Вебсайт

Я люблю людей

http://qsp.su

Re: Блиц-опрос по QSP

Однотипные свойства очень просто реализуются через массивы - был_на_локации[$curloc]=1, $описание['пальто']='Очень теплое пальто.' и т.п.

Кстати говоря, динамическая генерация кода - намного более мощная штука, чем ООП. А она в QSP поддерживается.

Неактивен

0    0    #12
16.03.2010 17:57

Eten
Участник (+9, -307)
Откуда: Балаково, Санкт-Петербург.
Зарегистрирован: 21.05.2007
Сообщений: 1416
Вебсайт

---

Re: Блиц-опрос по QSP

HzD_Byte написал:

Кстати говоря, динамическая генерация кода - намного более мощная штука, чем ООП. А она в QSP поддерживается.

Также стоит заметить, что появилась данная фича не так давно. Т.к. в версии 5.3х и ниже ее точно нету. tongue А жаль.

Отредактировано Eten (16.03.2010 17:57)

Неактивен

0    0    #13
16.03.2010 18:20

Eten
Участник (+9, -307)
Откуда: Балаково, Санкт-Петербург.
Зарегистрирован: 21.05.2007
Сообщений: 1416
Вебсайт

---

Re: Блиц-опрос по QSP

HzD_Byte написал:

Однотипные свойства очень просто реализуются через массивы - был_на_локации[$curloc]=1, $описание['пальто']='Очень теплое пальто.' и т.п.

А что ты делаешь, когда этих инструментов тебе не хватает? tongue

Неактивен

0    0    #14
16.03.2010 18:29

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

Re: Блиц-опрос по QSP

Eten написал:

HzD_Byte написал:

Однотипные свойства очень просто реализуются через массивы - был_на_локации[$curloc]=1, $описание['пальто']='Очень теплое пальто.' и т.п.

А что ты делаешь, когда этих инструментов тебе не хватает? tongue

Наверное, то же, что делает человек, когда не знает, как правильно написать определённое слово, — переформулирует фразу, чтобы это слово там не попадалось ("пиши — голова в канаве").

Неактивен

0    0    #15
06.09.2010 14:06

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

Re: Блиц-опрос по QSP

Вопрос: Как корректно передать в функцию №2 параметр функции №1, который может быть как числовым, так и строковым?

В Функцию1 передаётся один параметр, который может быть как числовым, так и строковым. Из Функции1 вызывается Функция2, которая приводит этот параметр к требуемому виду.

Например, во всех массивах данных сведения о предмете хранятся по его числовому ID, однако в некоторых случаях я ссылаюсь на предмет по его строковому идентификатору. Следовательно, есть желание передавать идентификатор (числовой или строковый) предмета одним параметром, а уже внутри функции разбирать — какого типа идентификатор передан и приводить его к унифицированному значению.

Код:

#ПолучитьIDПредмета
    if ARGS[0]=0 and $ARGS[0]='':
        …
    elseif ARGS[0]<>0:
        Result=ARGS[0]
    elseif $ARGS[0]<>'':
        Result=IIF(ISNUM($ARGS[0]), VAL($ARGS[0]), МассивIDпоИмени[$ARGS[0]])
    end
-

#ПолучитьОписаниеПредмета {Идентификатор предмета}
    ID=func('ПолучитьIDПредмета', {Идентификатор предмета})
    …
-

Неактивен

0    0    #16
06.09.2010 17:36

HzD_Byte
Модератор (+1, -1)
Откуда: Далеко
Зарегистрирован: 15.04.2006
Сообщений: 271
Вебсайт

Я люблю людей

http://qsp.su

Re: Блиц-опрос по QSP

Я вижу 2 варианта:
1) Передавать через строковый параметр (при вызове преобразовывать в строку GS 'функция', STR num) - тогда в функцию аргумент всегда будет приходить как $args[0]
2) Проверять в начале строковое значение - $args[0], если оно не пустое, то использовать его, иначе числовое. Это будет вполне корректно для описанной ситуации с идентификаторами:
iif($args='',args,$args)

Неактивен

0    0    #17
06.09.2010 18:03

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

Re: Блиц-опрос по QSP

HzD_Byte написал:

Я вижу 2 варианта:
1) Передавать через строковый параметр (при вызове преобразовывать в строку GS 'функция', STR num) - тогда в функцию аргумент всегда будет приходить как $args[0]
2) Проверять в начале строковое значение - $args[0], если оно не пустое, то использовать его, иначе числовое. Это будет вполне корректно для описанной ситуации с идентификаторами:
iif($args='',args,$args)

Ну за неимением других вариантов, это очевидные способы решения проблемы.

Неактивен

0    0    #18
06.09.2010 22:14

uux
Участник (+884, -80)
Откуда: Москва
Зарегистрирован: 02.12.2006
Сообщений: 1624

Re: Блиц-опрос по QSP

Olegus t.Gl. написал:

Вопрос: Как корректно передать в функцию №2 параметр функции №1, который может быть как числовым, так и строковым?

Я, конечно, в куспе ничего не понимаю, но есть такая извращенная идея: передавать три параметра - в одном только строковые величины, в другом - числовые, а третий - "селектор", говорящий вызываемой функции, каким из первых двух аргументов пользоваться.

Отредактировано uux (06.09.2010 22:16)

Неактивен

0    0    #19
06.09.2010 22:21

HzD_Byte
Модератор (+1, -1)
Откуда: Далеко
Зарегистрирован: 15.04.2006
Сообщений: 271
Вебсайт

Я люблю людей

http://qsp.su

Re: Блиц-опрос по QSP

Да, это тоже вариант smile

Неактивен

0    0    #20
06.09.2010 23:41

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

Re: Блиц-опрос по QSP

HzD_Byte написал:

Да, это тоже вариант smile

Народ, все (это гипербола) обходные пути я знаю. Могу подкинуть ещё вариант:

Код:

#ПолучитьIDПредмета {Имя глобальной переменной строкой}
    COPYARR 'ID', $ARGS[0]
    if ID=0 and $ID='':
        …
    elseif ID<>0:
        Result=ID
    elseif $ID<>'':
        Result=IIF(ISNUM($ID), VAL($ID), МассивIDпоИмени[$ID])
    end
-

#ПолучитьОписаниеПредмета {Идентификатор предмета}
    rID=ARGS[0]
    $rID=$ARGS[0]
    ID=func('ПолучитьIDПредмета', 'rID')
    …
-

Кстати, ещё варианты?

Неактивен

0    0    #21
13.09.2010 09:14

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

Re: Блиц-опрос по QSP

А как html-движок QSP относится к незнакомым тегам и незнакомым атрибутам? Он их тщательно игнорирует или где-то там он ругается, у него крыша едет и на определённом моменте это может боком выйти?
Например:

Код:

<Ah object="37" href="exec: GS 'ДействияСЛопатой'">лопата</Ah>

Неактивен

0    0    #22
13.09.2010 09:22

HzD_Byte
Модератор (+1, -1)
Откуда: Далеко
Зарегистрирован: 15.04.2006
Сообщений: 271
Вебсайт

Я люблю людей

http://qsp.su

Re: Блиц-опрос по QSP

Просто игнорирует.

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru