универсальный матричный скрипт 
предлагаю скрипт, который на матрице рисует всякие шевелящиеся циклические фигуры
в тексте скрипта даю комментарии, чтобы лучше понять его работу
перед записью на карту комментарии желательно убрать
CLR
VS=05 это скорость движения
IRD<80 REV EI с вероятностью 50% реверсируем, чтобы разнообразить фигуры
подготовка фона
VF=RD VF%02 VF будет 1, если надо закрашивать фон, или 0, если не надо
GB=VF яркость фона минимальная или нулевая
GC=FFFFFF IRD>10 GI=RD EI цвет фона включает и белый
фигуру будем рисовать предельной яркостью и случайным цветом, включая белый
PB=FF PC=FFFFFF IRD>10 PI=RD EI
выбираем случайно номер фигуры. их пока 6, поэтому используем остаток от деления на 7
VF=RD VF%07
далее однотипно перебираем все номера, и рисуем фигуру, если он совпал с выбранным
IVF=00
PM=000104090C0D0E131718191C212425262A2F3031323334393D3E3F42474A4B4C505556575A5F6263
EI
IVF=01
PM=000105060A0B0F101415191A2021222526272A2B2C2F3031323337383C3D414246474B4C5253545758595C5D5E616263
EI
IVF=02
PM=00050A0F14191E2328292A2B2C2D2E2F303132373C41464B50555A5B5C5D5E5F60616263
EI
IVF=03
PM=0005090B1012161B2124262C2D313236373D3F42484D5153585A5E63
EI
IVF=04
PM=000405090B0D1012161B1F212426282C2D313236373B3D3F4244484D515356585A5E5F63
EI
IVF=05
PM=0002050A0C0F1416191E202328292A2B2C2D2E2F30313234373C3E41464748494A4B4C4D4E4F5052555A5B5C5D5E5F60616263
EI
IVF=06
PM=0004060A0E1014181A1E1F2021222324252627282C2E32333435363738393A3B3C4042464A4C5054565A5B5C5D5E5F60616263
EI
теперь на фоне (включая черный) у нас есть нарисованная фигура
RPTначинаем её двигать - главный цикл
VC=RD VC%04 VC+03 VC это количество шагов движения в одном направлении: не меньше 3, но не больше 6
RPTвыбираем направления движения в цикле
VH=RD VH%02 VV=RD VV%02 VZ=VH VZ+VV VV и VH определяют вертикальное и горизонтальное направление
LVZ=00 повторяем цикл выбора направления, если оба направления отключены (т.е. VV+VH=0)
VU=RD VU%02 VG=RD VG%02 VU и VG определяют направление вверх-вниз и вправо-влево соответственно
RPT двигаем
WT=VS
движение в нужном направлении делается так:
сначала двигаем в "противоположном" направлении на 1 шаг, а потом, если активировано "правильное",
два раза двигаем в правильном. в конечном итоге получается или шаг в одну или шаг в другую сторону
IVH MRL IVG MRR MRR EI EI
IVV MRU IVU MRD MRD EI EI
LVC в одном и том же выбранном направлении делаем нужное количество шагов
а затем повторяем выбор направления и т.д.
INFбесконечно
фигуры рисовал просто белым цветом, перемещал нарисованный кадр в анимацию, а затем импортировал кадр анимации в скрипт. получался код, от которого надо взять только PM=...., остальное лишнее. часто там генерируется 2 команды PM - одна белым цветом, другая черным, так вот, черная не нужна, только белую брать надо
по коду часто используется остаток от деления на 2 (%02) - так удобно делать "логические" переменные: в итоге получится или 0, или 1, и потом вместо
IVF>00 можно просто писать
IVF . это для увеличения скорости исполнения скрипта: чем меньше символов в команде, тем быстрее она выполняется - для команд внутри цикла это актуально.
ну, вот... как-то так...
P.S. фигуры мои, как и раньше, для матрицы 10х10. если матрица другого размера - придется переделать. собственно, я хотел показать, как можно совмещать нарисованные кадры и алгоритмические команды в одном скрипте.
Добавлено after 5 minutes 17 seconds:
кстати, нет особого смысла делать так, как я тут показал - пихать в один скрипт много разных фигур... логичнее сделать на каждую фигуру отдельный скрипт - при случайном воспроизведении результат будет тот же самый.
я в один скрипт все запихал по двум причинам: во-первых, так было проще отлаживать фигуры в DSM (ниже INF можно вставлять импортируемые кадры, а потом копипастить выше по коду, чтобы сравнивать разные варианты и выбирать лучший).
а во-вторых, так проще опубликовать разные фигуры здесь - все в одной врезке
