RTADS: различия между версиями
Содержимое удалено Содержимое добавлено
Nikita (обсуждение | вклад) |
Nikita (обсуждение | вклад) |
||
| (не показаны 4 промежуточные версии 4 участников) | |||
Строка 20:
'''RTADS''' — это локализованная на русский язык известная [[платформа]] [[TADS|TADS 2]] (Text Adventure Development System], на что и указывает буква «R» (Russian) в её названии. Локализация произведена [[Гранкин, Андрей|Андреем Гранкиным]] в 2002 году и активно дорабатывалась в последующие годы. Также используется написание (R)TADS, которое, как правило, применяется в случаях, когда языковая специфика не имеет существенного значения и обсуждаемые вопросы справедливы как в отношении оригинальной, так и в отношении локализованной версии.
RTADS — это одна из наиболее функциональных и отлаженных русскоязычных платформ для написания [[
Данная статья посвящена преимущественно особенностям RTADS, специфичным для русского языка, поэтому для получения общей информации о платформе в целом следует также ознакомиться с [[TADS|основной статьёй про TADS 2]].
Строка 27:
(Данный раздел посвящён истории платформы RTADS, построенной на базе [[TADS|TADS 2]]. Для получения информации об истории оригинальной платформы см. основную статью «[[TADS#История|TADS: История]]».)
Впервые с [[Интерактивная литература|текстовыми играми]] [[Гранкин, Андрей|Андрей Гранкин]] познакомился в 1992 году на компьютере [[wikipedia:ZX Spectrum|
{{начало цитаты}}
Строка 66:
Также существует модуль [[Модуль проверки орфографии для RTADS|spellchecker]] для автоисправления ошибок при вводе команд, написанный [[Гранкин, Михаил|Михаилом Гранкиным]], который раньше включался в официальный комплект поставки RTADS, но в последствие был из него исключён и теперь поставляется отдельно. Однако в advr.t сохранён интерфейс для его подключения.
Дополнительная библиотека [[GameInfo|gameinfo.t]], которая отвечает за автоматическое создание файла библиографического описания игры по стандарту "[[
=== Отличия RTADS от TADS 2 ===
Строка 92:
=== Возможности парсера для игроков ===
Платформа RTADS имеет развитый [[Парсер|синтаксический анализатор]], соответствующий требованиям современных стандартов [[
RTADS поддерживает обработку команд из одного действия («[[Глагол|глагола]]»), из действия и [[Объект|объекта]], а также из действия и двух [[Объект|объектов]], например, «встать», «взять ключ», «открыть дверь ключом» соответственно. При этом, возможно связывание частей команды при помощи различных предлогов, обозначение объектов или действий более чем одним словом, использование названий объектов в разных падежных формах, а также использование в качестве объекта не только предмета из игрового мира, но и числа или строки текста в кавычках, например, для команд типа «повернуть переключатель микроволновки на 5» или «напечатать "привет" на клавиатуре».
Строка 135:
=== Примеры кода и возможностей платформы для разработчиков ===
Ниже приводится несколько примеров кода RTADS, демонстрирующих общий синтаксис языка и его базовые конструкции, а также возможности платформы в отношении решения типовых задач по написанию [[
<code><pre>
Строка 146:
==== Сортировка методом пузырька ====
Язык программирования (R)TADS имеет развитые алгоритмические возможности и поддерживает основные конструкции и типы данных, характерные для языков общего назначения, что позволяет просто и компактно реализовывать достаточно сложные алгоритмы, не отвлекаясь на странные с точки зрения прикладного программирования особенности синтаксиса, систему типов и модель работы с памятью, встречающиеся у альтернативных [[ИЛ]]-[[Платформа|платформ]]. Кроме того, он содержит ряд возможностей из области синтаксического сахара, ориентированных на специфику текстовых игр, например, упрощённый вывод текста на экран из любого места программы или специальную конструкцию внедрения логических выражений, вызовов отдельных функций, значений переменных или возвращаемых значений функций в выводимый на экран текст без необходимости описывать такие операции отдельно и затем делать конкатенацию. Хотя в явном виде операции конкатенации (как модифицирующей, так и немодифицирующей) в (R)TADS также доступны в полной мере, в отличие от некоторых альтернативных [[Платформа|платформ]], например, [[Inform|(R)Inform]], где этому препятствует архаичная модель работы с памятью.
Листинг:
Строка 229:
==== Создание предмета ====
При создании [[
Листинг с ручным указанием словоформ:
Строка 284:
==== Определение класса и функции, динамическое создание объектов ====
(R)TADS имеет развитый язык программирования, характеризующийся классической реализацией ООП с поддержкой суперклассов и множественного наследования, что позволяет упрощать написание кода за счёт высокой степени его переиспользования. В языке также существует механизм динамического создания объектов, позволяющий создавать и удалять новые объекты в процессе выполнения программы, что позволяет легко реализовывать многие продвинутые игровые механики. Одинаковые предметы игрового мира могут быть описаны особым образом, который позволяет пренебречь стандартным требованием [[
Листинг:
Строка 390:
==== Создание новых «глаголов» ====
Стандартная библиотека платформы имеет более сотни предопределённых «[[Глагол|глаголов]]», которые покрывают все типовые взаимодействия с игровым миром, традиционные для [[
Листинг создания нового «глагола» как простого действия:
Строка 561:
==== Создание отдельной области на экране ====
(R)TADS при работе в интерфейсе с поддержкой [[HTML TADS]] позволяет делить экран на произвольные области — так называемые баннеры — и управлять ими отдельно: выводить туда какой-то текст или картинку, менять только в них шрифт или фон и так далее. Это позволяет менять вид интерфейса, отходя от традиционного телетайпного стиля [[
Листинг:
Строка 650:
* [[:Категория:Интерпретаторы TADS|Интерпретаторы TADS]]
* [[:Категория:Библиотеки TADS|Библиотеки TADS]]
* [[Конструктор квестов]]
| |||