"QSP: Экран" — модуль для работы с экраном

"QSP: Экран" — модуль для работы с экраном

Перечень операторов платформы QSP для работы с экраном основного описания ограничен очисткой, выводом и получением всего содержимого. Данный модуль расширяет этот функционал, добавляя возможность (в html-режиме) манипулировать отдельными областями экрана, не затрагивая остальные.

Ранее я выкладывал наброски подобного — теперь это полноценный модуль.

Текущая версия: 1.1 (скачать)
Документация on-line: http://ifiction.ru/h/otg_lib_screen_help.html

Пример работы с модулем:

Код:

!Выводим на экран текст, содержащий область, которую мы хотим менять.

*P '<b>Данные:</b><region id="data"></region>'

!Прописываем в область текст "Данных нет"
GS 'Экран.Установить', 'data', 'Данных нет'

После выполнения данного кода содержимое экрана будет такое:

Код:

<b>Данные:</b><region id="data">Данных нет</region>

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

Изменено: Olegus t.Gl.
24.Май.11 18:09:46
Olegus t.Gl.
useravatar
Offline
138 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: "QSP: Экран" — модуль для работы с экраном

Что же, вещь весьма хорошая. Олегусу большой респект smile Пригодится как-нибудь в будущем.

AleCoTeen
Искатель
useravatar
Offline
511 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: "QSP: Экран" — модуль для работы с экраном

Подход, развиваемый употреблением этого "модуля", вреден!

Генерировать текст динамически - верно и надежно.
Сгенерировать текст один раз и потом "подправлять" его - неверно, чревато багами.

"Модуль" провоцирует авторов поступать по второму варианту, и усугубляет порочную практику.

Правильный способ для динамического формирования текста в QSP:

Описание выводим в коде "при посещении".

Код:

*P 'Вы на кухне.'

IF роджер=1: ' Здесь находится Роджер.' ELSE ' Кроме вас, здесь никого нет.'

Nex
useravatar
Offline
4277 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: "QSP: Экран" — модуль для работы с экраном

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

Я набросал ещё одну небольшую демку (скриншот), где использовал базовые возможности модуля. Никакой порочности и резкого увеличения вероятности возникновения багов я, при её написании, не увидел.

В подтверждение же твоих слов (о порочности, ненадёжности и вредности) было бы интересно увидеть вариант реализации подобной игры с помощью лишь базового функционала QSP.

Olegus t.Gl.
useravatar
Offline
138 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: "QSP: Экран" — модуль для работы с экраном

Olegus t.Gl.,
во-первых, я специально отметил, что вреден не сам "модуль", а развиваемая им порочная привычка обновлять описание кусками "по событию", вместо старой доброй динамической генерации текста.
Попытайся осмыслить разницу.

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

Порочная практика обновлять описание "кусками" - близкий родственник привычки к использованию DELACT, о вреде которой я не так давно писал. Совсем недавно в игре "Окей, я  согласен!" вскрылся очередной баг, к которому такая привычка привела.

Ну и в-третьих, неужели ты всерьез считаешь, что без твоего модуля, на одной лишь динамической генерации текста, эту "игру" нельзя сделать?

в некоторых ситуациях это удобно

Чесать подбородок револьвером тоже "в некоторых ситуациях удобно", но это слишком опасно, чтобы позволять себе к этому привыкнуть.

Nex
useravatar
Offline
4277 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: "QSP: Экран" — модуль для работы с экраном

Nex написал(а):

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

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

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

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

Nex написал(а):

Ну и в-третьих, неужели ты всерьез считаешь, что без твоего модуля, на одной лишь динамической генерации текста, эту "игру" нельзя сделать?

Дело не в том, что это "нельзя сделать". Просто не исключено, что это будет менее удобно, а код — гораздо сложнее и запутаннее.

Nex написал(а):

в некоторых ситуациях это удобно

Чесать подбородок револьвером тоже "в некоторых ситуациях удобно", но это слишком опасно, чтобы позволять себе к этому привыкнуть.

Чесать подбородок камнем куда безопаснее, но если говорить о поражении цели, — использование револьвера будет в большинстве случаев явно эффективнее.

Olegus t.Gl.
useravatar
Offline
138 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: "QSP: Экран" — модуль для работы с экраном

Аналогия со старыми компьютерами высосана из пальца. Неверный подход, который ты приукрасил своим "модулем" - это не "прорыв технологий", а всего лишь грабля новичка, к которой ты, благодаря своим навыкам программирования, приделал реактивный двигатель, вместо того, чтобы ее обойти.

И я никого не веду за собой

Лицемерие оставь на ификшене. Если ты выкладываешь модуль в открытый доступ, публикуешь его на форуме, то ты уже предлагаешь им пользоваться. А его использование как раз и поведет неопытных авторов за тобой в пучину отчаяния.

Если человек пользуется этим средством неправильно, то это проблема конкретно этого человека, а вовсе не повод бойкотировать само средство.

Если кто-то прострелит себе голову, почесывая подбородок револьвером, то ответственность за несчастный случай, в значительной степени лежит на том, кто его этому научил.

Чесать подбородок камнем куда безопаснее, но если говорить о поражении цели, — использование револьвера будет в большинстве случаев явно эффективнее.

См. начало сообщения.

Nex
useravatar
Offline
4277 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: "QSP: Экран" — модуль для работы с экраном

Nex написал(а):

Порочная практика обновлять описание "кусками" - близкий родственник привычки к использованию DELACT, о вреде которой я не так давно писал. Совсем недавно в игре "Окей, я  согласен!" вскрылся очередной баг, к которому такая привычка привела.

Эта была моя первая игра, к тому писалась на скорость и про CLA я тогда не знал. ^^ харе обо мне упоминать.

Dark[Ol(U23)leneri]
useravatar
Offline
992 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: "QSP: Экран" — модуль для работы с экраном

Dark[Ol(U23)leneri],
не нужно этого стыдиться, на эту граблю наступил почти каждый, кто увлекался использованием DELACT.

Nex
useravatar
Offline
4277 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: "QSP: Экран" — модуль для работы с экраном

я не стыжусь, меня бесит, что к игре, которая написана для конкурса Вжж, обращено такое серьезное внимание как-будто это сверхпроект какой-то

Dark[Ol(U23)leneri]
useravatar
Offline
992 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Информация

Статистика форума:
 
Всего тем:
1062
Всего опросов:
14
Всего сообщений:
16791271
Бездействующий:
Пользователи форума:
 
Всего пользователей:
2903
Последним зарегистрировался:
Rfr