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.
Участник (+1073, -250)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2905
Вебсайт

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

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

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

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

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

Неактивен

0    0    #2
15.03.2010 23:46

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

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

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

Неактивен

0    0    #3
15.03.2010 23:49

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

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

yandexx написал:

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

HzD_Byte написал:

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

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

Неактивен

0    0    #4
16.03.2010 18:29

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

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

Eten написал:

HzD_Byte написал:

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

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

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

Неактивен

0    0    #5
06.09.2010 14:06

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

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    #6
06.09.2010 18:03

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

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

HzD_Byte написал:

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

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

Неактивен

0    0    #7
06.09.2010 23:41

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

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    #8
13.09.2010 09:14

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

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

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

Код:

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

Неактивен

Powered by PunBB
© copyright 2001–2026 iFiction.Ru