Инструменты пользователя

Инструменты сайта


help:dummy

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Both sides previous revision Предыдущая версия
Следущая версия
Предыдущая версия
help:dummy [2013/10/15 20:57]
newsash
— (текущий)
Строка 1: Строка 1:
-5) Перед интерпретированием строки происходит удаление пробелов и символов табуляции в её начале,​ поэтому можете форматировать код локации. 
  
-6) В названиях действий и предметов не важен регистр букв, т.е. "​ДеньГи"​ и "​деньги"​ - одна и та же локация. 
- 
-7) Операторы разделяются либо символом "&",​ либо символом переноса строки. Пример:​ 
-test = 65 
-d=8 & goto '​PPP'​ 
- 
-8) Максимальный индекс элемента массива - 2147483647. Не рекомендуется использовать большие индексы. 
- 
-11) Не обязательно записывать операторы / выражения в одной строке. Чтобы перейти на другую строку,​ нужно лишь в конце строки дописать " _" (пробел и символ подчёркивания). Строки 
- 
-<sxh qsp> 
-if a<5 and n-b>​4+5+h/​7*2 or t=4: p '​TTTTTTTTT'​ & cla & $f='​Text Variable'​ & goto '​FFFF'​ 
-</​sxh>​ 
-и 
-<sxh qsp> 
-if a<5 and n-b> _ 
-4+5+h/7*2 or _ 
-t=4: p '​TTTTTTTTT'​ _ 
-& cla & $f='​Text Variable'​ _ 
-& goto '​FFFF'​ 
-</​sxh>​ 
-ЭКВИВАЛЕНТНЫ,​ т.е. воспринимаются движком одинаково. 
- 
-PS: 
- 
-1) Группа строк, разделённых " _", считается ОДНОЙ строкой (сообщения об ошибках также выводятся с учётом того, что это одна строка). 
- 
-2) После "​OR"​ стоит не один, а ДВА пробела - первый пробел воспринимается движком как пробел,​ а второй - как часть " _". Это сделано для того, чтобы движок правильно обрабатывал операцию "​OR"​ - не как "​4+5+h/​7*2 ort=4",​ а как "​4+5+h/​7*2 or t=4". 
- 
-PS: 
-При использовании операторов "​KILLALL,​ KILLVAR"​ удаляются также все системные переменные. 
- 
- 
-Числовая константа записывается числом (например,​ 4535), а текстовая берётся с двух сторон в кавычки. Кавычками могут быть либо апострофы ('), либо прямые кавычки ("). Две подряд идущие кавычки считаются кавычкой,​ включённой в текстовую константу. Т.е. после выполнения строк 
- 
-*PL 'Byte Soft''​s QSP' 
-*PL "Byte Soft's ""​QSP"""​ 
-вы увидите строки 
-Byte Soft's QSP 
-Byte Soft's "​QSP"​ 
- 
-Существует возможность использования преформатированных текстовых констант. Для таких констант сохраняются переносы строк и отступы. Примеры:​ 
-'​Данный текст 
-будет расположен на 
-нескольких строках'​ 
- 
-$a='И этот 
-текст 
-также'​ 
- 
-a=2 & act '​Многострочное 
-название':​gt '​next'​ 
- 
-PS: 
-Строки,​ содержащие преформатированную текстовую константу,​ считаются ОДНОЙ строкой (сообщения об ошибках также выводятся с учётом того, что это одна строка). 
- 
-В зависимости от результата вычисления выражения могут быть либо строковыми,​ либо числовыми. 
- 
-Примеры числовых выражений:​ 
-3+4*3*4 
-(val('​25'​)*4)/​(2*5) 
-был_в_комнате = 0 
-$был_в_комнате = '​нет'​ 
-1 AND 1 OR 0 
-A=B AND (C<>D OR 2=E+3) 
-$str1 = $str2 AND $str2 <> $str3 
- 
-Примеры строковых выражений:​ 
-'​строка'​ 
-"​проверка"​ 
-"​преформатированная 
-текстовая 
-константа"​ 
- 
-mid("​строка",​1,​2) 
-$VAR 
-$VAR + ' строка ' 
- 
-Складывать с помощью "​+"​ можно не только числа (значения числовых выражений),​ но и объединять текстовые константы (значения строковых выражений). Также для объединения строковых значений можно использовать символ "&",​ при этом такое объединение должно быть заключено в скобки. Например,​ 
- 
-*PL 'The '​+'​door '​+'​is closed.'​ 
-и 
-*PL ('The '&'​door '&'​is closed.'​) 
-выведут одно и то же: "The door is closed."​. 
- 
-Возможна ЛЮБАЯ комбинация констант,​ переменных,​ функций. 
-При вычислении значений выражений движок (по возможности) конвертирует типы данных автоматически. 
-В строковые константы,​ в базовые описания локаций и названия базовых действий существует возможность вставлять значения выражений. 
-Такие "​подвыражения"​ должны находиться между двойных угловых скобок:​ "<<"​ и ">>",​ до и после которых может идти любой текст, включая подобные "​подвыражения"​. 
-Например,​ вместо оператора 
-pl '​i='​+str(i) 
-можно написать 
-pl '​i=<<​i>>'​ 
-Ещё примеры:​ 
-число_гоблинов=5 
-'​Тебя окружили <<​число_гоблинов>>​ гоблинов!'​ 
-pl '​Вас зовут <<​$PlayerName>>,​ вы находитесь в <<​$curloc>>​.'​ 
-Примеры использования вложенных "​подвыражений":​ 
-pl val('<<​val("<<​i>>"​)>><<​j>>'​) 
-pl val('<<​str(val("<<​i>>"​))>>'​) 
-Так как "​подвыражения"​ вычисляются внутри строковых констант,​ то для вычисления вложенного "​подвыражения"​ необходимо присутствие вложенной строковой константы. 
-PS: 
-Смотрите раздел "​Использование массивов"​ этой части документации,​ чтобы получить дополнительную информацию о возможных выражениях. 
- 
-Оператор - ключевое слово, выполняющее какое-либо действие. Оператор может иметь аргументы (параметры),​ необходимые для выполнения. Аргументы операторов задаются выражениями. Операторы не возвращают результат выполнения. 
-Пример вызова оператора:​ 
-ADDOBJ '​ключ','​pics/​key.png'​ 
-Здесь "​ADDOBJ"​ - название оператора,​ а '​ключ'​ и '​pics/​key.png'​ - аргументы оператора. 
-Вызов оператора также может быть записан со скобками:​ 
-ADDOBJ ('​ключ','​pics/​key.png'​) 
-PL ('​текст'​) 
-CLEAR() 
- 
-Базовые операторы языка QSP 
-! - оператор комментария. То, что находится в данной строке после оператора комментария,​ и до конца строки игнорируется интерпретатором. Оператор комментария позволяет "​закомментировать"​ (выключить) ненужный временно оператор / функцию во время отладки игры. Кроме того, написание комментариев к коду программы является одним из признаков хорошего стиля программирования. 
-В операторе комментария поддерживаются преформатированные строки. Примеры:​ 
-! это комментарий без преформатированных строк 
-!"а этот комментарий 
-содержит преформатированную 
-строку"​ 
-!" 
-и этот 
-тоже 
-" 
-a = 3 & ! а также '​вот 
-этот'​ 
- 
- 
-DYNAMIC [$строка кода],​[параметр 1],​[параметр 2], ... - выполнение кода. Данный оператор позволяет динамически генерировать код игры. Переданные параметры хранятся в массиве ARGS. После выполнения кода предыдущие значения ARGS восстанавливаются. Примеры:​ 
- 
-DYNAMIC '​$a="​string<<​$b>>"'​ 
-DYNAMIC '​$a'​ 
-DYNAMIC 'if $a="​string":''​text!'''​ 
-DYNAMIC " 
-$args[0] 
-addobj $args[1] 
-",'​Текст','​Вилка'​ 
- 
- 
-Функции 
-Top Previous Next 
-Функция - ключевое слово, выполняющее какое-либо действие,​ учитывая свои аргументы (параметры) и возвращающее результат. Аргументы функций задаются выражениями. 
- 
-Пример вызова функции:​ 
-MAX(1,2,4) 
-Здесь "​MAX"​ - название функции,​ а 1, 2 и 4 - аргументы функции. 
-При вызове функций без аргументов или с одним аргументом скобки можно не записывать:​ 
-A=RAND 4 
-B=COUNTOBJ 
-Перед функциями,​ которые могут возвращать строковые значения,​ можно ставить символ "​$"​. Т.е, к примеру,​ можно написать "pl str(43)"​ или "pl $str(43)"​. 
-Эта возможность настоятельно рекомендуется к использованию,​ так как улучшает читаемость кода. 
- 
-Базовые функции языка QSP 
-CURLOC - возвращает название текущей локации. 
-RAND([#​выражение 1],​[#​выражение 2]) - возвращает случайное число между числами [#​выражение 1] и [#​выражение 2]. Параметр [#​выражение 2] может отсутствовать,​ при этом он принимается равным 0. 
-RND - возвращает случайное значение от 1 до 1000. 
-MAX([выражение 1],​[выражение 2], ...) - возвращает максимальное из значений выражений-аргументов. Если передан один аргумент,​ то считается,​ что указано имя массива - в этом случае поиск максимального элемента происходит среди строковых (если название массива указано со знаком "​$"​) или среди числовых значений элементов массива. Например:​ 
-MAX(1,​2,​5,​2,​0) - вернёт 5 
-MAX(a,b,c) - вернёт максимальное из значений переменных 
-MAX('​aa','​ab','​zz'​) - вернёт '​zz'​ 
-MAX('​a'​) - вернёт максимальное из числовых значений элементов массива "​A"​ 
-MAX('​$b'​) - вернёт максимальное из строковых значений элементов массива "​B"​ 
- 
-MIN([выражение 1],​[выражение 2], ...) - возвращает минимальное из значений выражений-аргументов. Если передан один аргумент,​ то считается,​ что указано имя массива - в этом случае поиск минимального элемента происходит среди строковых (если название массива указано со знаком "​$"​) или среди числовых значений элементов массива. 
-IIF([#​выражение],​[выражение_да],​[выражение_нет]) - возвращает значение выражения [выражение_да],​ если [#​выражение] верно, иначе значение выражения [выражение_нет]. 
- 
-QSPVER - возвращает версию интерпретатора в формате "​X.Y.Z"​. 
-FUNC([$выражение],​[параметр 1],​[параметр 2], ...) - обработка локации с названием [$выражение]. Указанные параметры передаются в массиве ARGS. Результат функции равен значению $RESULT при возврате строкового значения или RESULT при возврате числового значения. Если при обработке локации были установлены и RESULT, и $RESULT, то предпочтение отдаётся строковому значению. После обработки локации предыдущие значения ARGS и RESULT восстанавливаются. Примеры:​ 
-PL 4 + FUNC('​функция'​) - обработка локации "​функция"​ как функции. Массив ARGS пуст. Результат передается через $RESULT или RESULT, в зависимости от кода обрабатываемой локации. 
-PL FUNC($name, 1) * 78 - обработка локации с названием в $name как функции. ARGS[0] равен 1. 
-MSG "​text"​ + FUNC($name, "​строка",​ 2) - обработка локации с названием в $name как функции. $ARGS[0] содержит строку "​строка",​ ARGS[1] равен 2. 
-DYNEVAL([$выражение],​[параметр 1],​[параметр 2], ...) - возвращает значение указанного выражения. Функция позволяет вычислять значения динамически сгенерированных выражений. Указанные параметры передаются в массиве ARGS, а после вычисления выражения предыдущие значения ARGS восстанавливаются. Примеры:​ 
-DYNEVAL('​3+4'​) 
-PL DYNEVAL('​mid("​abcd",​2,​1)+"​qwerty"'​) 
-PL DYNEVAL($test + ' + val("<<​$test>>"​)'​) 
-проход=DYNEVAL("​ $args[0] <> '​текст'​ ", '​строка'​) 
- 
-Системные переменные 
-Системные переменные - переменные,​ значения которых обрабатываются интерпретатором специальным образом. Системные переменные используются как обычные переменные,​ т.е. в них можно заносить и считывать из них значения (правда стоит помнить,​ что в результате вы можете получить,​ например,​ чёрный цвет текста на чёрном же фоне - и ничего не будет видно). 
- 
-Базовые системные переменные - основные переменные. 
-Переменные,​ задающие обработчики событий - позволяют обрабатывать такие события,​ как выбор предмета,​ переход на новую локацию,​ ввод строки в поле ввода... 
-Переменные настройки интерфейса - позволяют настраивать цвета, шрифт, а также использовать в описаниях HTML. 
help/dummy.1381870620.txt.gz · Последние изменения: 2013/10/16 00:57 (внешнее изменение)