zwadrax


Коротко об игре

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

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

Смысл прохождения каждого уровня игры заключается в достижении двумя героями выхода (двери). Для достижения выхода оба героя должны перемещаться по карте, производить какие-либо действия и так или иначе помогать друг другу. Герои равноправны. На карте могут размещаться различные элементы, такие как:


Управление

Управление игрой осуществляется шестью ключами: перемещение влево-вправо-вверх-вниз, переключение между героями и включение рычага.
Действие PocketBook 360° PocketBook 301+ PocketBook 302 PocketBook 602 Pro, PocketBook 902 Pro PocketBook 603 Pro, PocketBook 903 Pro
перемещение героя LEFT, RIGHT, UP, DOWN LEFT, RIGHT, UP, DOWN PREV, NEXT, PREV2, NEXT2, тачскрин LEFT, RIGHT, UP, DOWN LEFT, RIGHT, UP, DOWN, тачскрин
переключение между героями OK OK длинная NEXT, тачскрин OK OK, тачскрин
активация переключателя длинная OK длинная OK длинная PREV, тачскрин длинная OK длинная OK, тачскрин
В моделях с тачскрином возможно использование кнопок, нарисованных на экране, хотя аналогичная функциональность привязана и к аппаратным кнопкам устройства. Следует иметь в виду, что стилус не позволяет "двигать" героя по карте, поскольку это принципиально противоречит идее игры - пошаговому продвижению к цели.

Герой может перемещаться вправо-влево, может перемещаться вниз и вверх по лестнице, также может перемещаться в любом из этих направлений через клапан. Герой может взобраться на ступеньку, для чего требуется последовательное нажатие вверх - в сторону. На две ступеньки герой взобраться не может. Смерть героя наступает, если совершено:


Установка

Установка программы на PocketBook предполагает копирование файла приложения zwadrax.app в директорию /mnt/ext1/games (папку games в корне внутренней памяти устройства). Также требуется скопировать папку данных программы по одному из следующих путей:


Интерфейс

Интерфейсом программы, помимо ключей управления игрой, предусмотрены:
Действие PocketBook 360° PocketBook 301+ PocketBook 302 PocketBook 602 Pro, PocketBook 902 Pro PocketBook 603 Pro, PocketBook 903 Pro
вызов меню 3x3 для сдвига или поворота карты длинная UP, PREV длинная UP, DELETE длинная PREV2, тачскрин длинная UP, PREV длинная UP, PREV, тачскрин
вызов главного меню программы длинная DOWN, NEXT длинная DOWN, BACK BACK, тачскрин длинная DOWN, NEXT длинная DOWN, NEXT, тачскрин
выход из программы длинная NEXT длинная DELETE длинная NEXT2 длинная NEXT длинная NEXT
ручной сдвиг карты - - перетаскивание стилусом в области карты - перетаскивание стилусом в области карты
установка позиции окна карты - - клик стилусом в области позиции окна - клик стилусом в области позиции окна
Для 302 модели кнопки отсутствующего джойстика продублированы на экране. Они могут быть задействованы во всех моделях с тачскрином. Начало и завершение сдвига карты стилусом срабатывает при удерживании стилуса (нажал-удержал - передвинул-удержал).

Следует иметь в виду, что длинная BACK не приводит к корректному выходу из программы, а заставляет систему принудительно ее завершить без выполнения ею финальных действий. В частности, в данной программе подобное завершение означает отсутствие сохранения состояния на выходе. Для корректного завершения программы следует использовать соотвествующий пункт главного меню или указанный выше горячий ключ (длинное нажатие DELETE, NEXT или NEXT2).

В главном меню программы доступны следующие пункты:
Пункт менюДействие
next levelпереход к следующему непройденному уровню из текущего набора уровней
restartповторный запуск текущего уровня
level loadзагрузка другого уровня из текущего набора уровней
level editпереход в режим редактирования текущего уровня
level save asсохранение редактируемого уровня с новым именем
solution loadзагрузка последовательности действий, сохраненной ранее для текущего уровня
solution save asсохранение последовательности действий, совершенной пользователем в текущей игре
level setвыбор другого набора уровней
exitвыход из приложения

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

Нижняя панель отображает подсказку по ключам и статус игры. Центральное поле в нижней панели показывает статус окна отображения карты игры. В нем не соблюдены пропорции сторон карты между собой, но соблюдены пропорции окна отображения относительно карты.

Карта игры потенциально может быть больше экрана. Чтобы сдвигать отображаемое в текущий момент "окно", предусмотрено меню 3x3, для моделей с тачскрином возможны также соответствующие действия стилусом.


Структура данных программы

Каждый уровень игры представлен текстовым файлом *.zwl (zwadrax level):

<levelname>.zwl

К каждому уровню пользователь может сохранить произвольное количество solution-ов (последовательностей ходов) с целью последующего воспроизведения. Каждая такая последовательность хранится в файле *.zws (zwadrax solution) с именем следующей структуры:

<levelname>.<solutionname>.zws

Все уровни в игре рассортированы по наборам. Предусмотрен один основной набор уровней (root), также возможно произвольное количество дополнительных (from masha, from dasha, etc). Уровни набора root хранятся непосредственно в директории данных (к, примеру, /mnt/ext1/system/share/zwadrax). Уровни других наборов, если таковые будут, хранятся в поддиректориях с соответствующими именами.

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


Создание и редактирование уровней

Как было уже сказано выше, каждый уровень представляется текстовым файлом. Внутренняя структура такого файла наглядна и проста. В частности, первый уровень основного набора описывается следующим набором строк:

area-height=10
area-width=12
line-00=############
line-01=############
line-02=#         b#
line-03=#         ##
line-04=#    ##  ###
line-05=#x  ########
line-06=###     ####
line-07=#####  a####
line-08=############
line-09=############

Формат предполагает использование в карте следующих символов:
СимволОбъект
#глухая стена
|лестница
*обычный камень
0аннигилирующий камень
<клапан влево
>клапан вправо
^клапан вверх
_клапан вниз
=сведенный мост
"разведенный мост
!телепорт
$лифт
\переключатель в левом положении
/переключатель в правом положении
aгерой Alice, должен быть только один
bгерой Bob, должен быть только один
xдверь (выход с уровня)
любой другой символ, включая пробелпусто

Отдельно следует оговорить использование переключателей. Оба возможных переключателя в начальной карте уровня (в правом и левом положении) равноправны и отличаются лишь визуально. Привязки переключателей представляются отдельными строками в одной из двух форм:

switch-I1-J1=I2-J2
switch-I1-J1=I2-J2|I3-J3

В этом примере Ix, Jx - двузначные целые числа, характеризующие координаты соответствующих ячеек по вертикали и горизонтали соответственно. Каждый переключатель карты с координатами (I1,J1) должен иметь свою привязку в виде строки в указанном формате.

Первая форма относится к объектам, меняющимся "на месте", а именно мостам и клапанам. Координаты такого объекта указываются в качестве (I2,J2). При срабатывании состояние объекта меняется на противоположное.

Вторая форма привязки относится к транспортным объектам, а именно лифтам и телепортам. Таким образом, координата (I2,J2) в момент срабатывания должна содержать лифт или телепорт, тогда как координата (I3,J3) указывает, куда этот лифт поедет, или куда телепорт переместит помещенный в него объект. Лифт ездит только по вертикали, соответственно, J2 и J3 должны в его случае совпадать. Если на пути встречается препятствие, мещающее лифту проследовать до координаты назначения, он возвращается.

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

area-height=2
area-width=8
line-00=a\/$ x>b
line-01=### ####
switch-00-01=00-06
switch-00-02=00-03|01-03

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

Для редактирования любого загруженного в текущий момент уровня требуется выбрать соответствующий пункт меню. В режиме редактирования кнопки перемещения задают текущую редактируемую ячейку, короткое нажатие OK меняет ее содержимое. Последовательность из трех длинных нажатий OK создает привязку. Первая ячейка в этой последовательности задает привязываемый переключатель, вторая и третья - объект и пункт назначения. Если привязка осуществляется к мосту или клапану, третья ячейка должна совпадать со второй (два длинных OK на одной ячейке).

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


Ошибки

Как известно, ошибки имеют навязчивую тенденцию существовать всегда. С удовольствием исправлю, когда о них узнаю:

ilyh ${dog} inbox ${dot} ru

Copyright © 2010 Ilyh&So