Команды управления матрицами

Общая информация


MatrixSet("ИмяМатрицы[Столбец,Строка]","Индекс") задает изображение, индекс которого указан в качестве второго параметра, для ячейки, адрес которой определяется значениями Столбец и Строка.

MatrixGet
("ИмяМатрицы[Столбец,Строка]","Переменная") считывает в указанную переменную индекс изображения из ячейки, адрес которой определяется значениями Столбец и Строка.

MXCOL
- возвращает номер текущего столбца
MXROW
- возвращает номер текущей строки

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

MatrixSet("ИмяМатрицы[Столбец,Строка]","Индекс")
Пояснение
Задает изображение, индекс которого указан в качестве второго параметра, для ячейки, адрес которой определяется значениями Столбец и Строка.
Примеры
MatrixSet("MyMatrix[2,1]","2")
MatrixSet("MyMatrix[4,3]","1")
MatrixSet("MyMatrix[2,4]","3")
MatrixSet("MyMatrix[4,4]","0")

Приведенные выше команды зададут следующие изображения в соответствующих ячейках:



Как заполнить всю матрицу определенным изображением?

RedBall=1
** Заполнение всей матрицы красными шариками
MatrixSet("MyMatrix[0,0]","RedBall")

Или как заполнить строку определенным изображением?

GreenBall=2
** Заполнение второй строки зелеными шариками
MatrixSet("MyMatrix[0,2]","GreenBall")

А как заполнить столбец определенным изображением?

BlueBall=3
** Заполнение четвертого столбца синими шариками
MatrixSet("MyMatrix[4,0]","BlueBall")

Как очистить всю матрицу или ее часть?

NullImage=0
** Заполнение всей матрицы пустым изображением
MatrixSet("MyMatrix[0,0]","NullImage")
** Заполнение второй строки пустым изображением
MatrixSet("MyMatrix[0,2]","NullImage")
** Заполнение четвертого столбца пустым изображением
MatrixSet("MyMatrix[4,0]","NullImage")
** Освобождение ячейки(3,2)
MatrixSet("MyMatrix[3,2]","NullImage")

А как насчет чтения из матрицы?

MatrixGet("ИмяМатрицы[Столбец,Строка]","Переменная")
Пояснение
Считывает в указанную переменную индекс изображения из ячейки, адрес которой определяется значениями Столбец и Строка.
Примеры


MatrixGet("MyMatrix[2,1]","CurrentImage")
Переменная CurrentImage будет содержать значение 2.

MatrixGet("MyMatrix[4,3]","CurrentImage")
Переменная CurrentImage будет содержать значение 1.

MatrixGet("MyMatrix[2,4]","CurrentImage")
Переменная CurrentImage будет содержать значение 3.

MatrixGet("MyMatrix[4,4]","CurrentImage")
Переменная CurrentImage будет содержать значение 0.

Примечание: если при использовании команды MatrixGet индекс столбца или строки превышает размерность матрицы, то переменная вернет значение -1
.

MatrixGet("MyMatrix[7,5]","CurrentImage")
Переменная CurrentImage будет содержать значение -1, так как указанные индексы превышают размерность матрицы (4 х 4).

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

MXCOL/MXROW
Пояснение
MXCOL - возвращает номер текущего столбца
MXROW - возвращает номер текущей строки

MXCOL и MXROW возвращают нулевое значение, если ни одна ячейка не является активной.
Примеры
** Чтение индекса изображения в активной ячейке
MatrixGet("MyMatrix[MXCOL,MXROW]","Index")

** Установка в активной ячейке изображения с индексом 2
GreenBall=2
MatrixSet("MyMatrix[MXCOL,MXROW]","GreenBall")

** Выбрана ли пользователем какая-либо ячейка?
If (MXCOL=MXROW=0Then
  Message("Вы должны выбрать шар","")
End

MMB Программирование без границ :: dgilmour, перевод на русский язык, 2006 :: Все права защищены :: www.mmbscript.ru