Init arr

Материал из UoPilot
Версия от 10:42, 28 августа 2019; Tatikoma (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

Описание

Init_arr - команда присваивания нескольких элементов массива одной строкой.

Синтаксис

Привязка к окну: Нет.
Работа со свернутым окном: Да.

init_arr <массив> [(номер_строки [число_столбцов [начальный_столбец]])] <набор_значений>

<массив> - имя массива.
[номер_строки] - в какую строку записывать значения.
[число_столбцов] - во сколько столбцов записывать значения.
[начальный_столбец] - с какого начать записывать.

Примеры

// Пример 1
init_arr %a (1) hour : min : sec     // записать текущее время в 1 строку (5 элементов массива)
msg %a [1]                           // показать в сообщении
End_script
// Пример 2
init_arr %a (1 5) day . month . year hour : min : sec     // записать текущие дату и время в 2 строки по 5 элементов
msg %a [1]     %a [2]                                     // показать в сообщении
End_script
// Пример 3
set $a У попа была собака          // разбить строку на элементы
init_arr %a (1) $a
msg %a [1 1]   %a [1 2]   %a [1 3]   %a [1 4]
End_script
// Пример 4
init_arr %arr (1) 360 197 13529609    // задать координаты и цвет в одну строку
if %arr [1 1] %arr [1 2] %arr [1 3]
    msg Цвет найден
    move %arr [1 1] %arr [1 2]        // переместить курсор в координаты 360 197
    End_script
end_if
// Пример 5
init_arr %a (1) 360 197 13529609    // задать координаты и цвет в одну строку
set delimiter ' '                   // установить разделитель между элементами 'пробел'
if %a [1]                           // тоже самое что if %a [1 1] %a [1 2] %a [1 3]
    msg Цвет найден
    End_script
end_if
// Пример 6
init_arr %a (1) 360 197 13529609    // задать координаты и цвет, первая строка
init_arr %a (2) 424 511 15979864   // задать координаты и цвет, вторая строка
set delimiter ' '                   // установить разделитель между элементами 'пробел'
    //обратите внимание, когда используется больше 1 условия, то обязательно нужны круглые скобки.
if (%a [1]) and (%a [2])                           // тоже самое что if %a [1 1] %a [1 2] %a [1 3] and %a [2 1] %a [2 2] %a [2 3]
    msg Цвет найден
    End_script
end_if
// Пример 7
init_arr %a 11 32 43 46        // одномерный массив, 4 эл-та (элементы [1] [2] [3] [4])
msg %a [1]   %a [2]   %a [3]   %a [4]
End_script
// Пример 8 
init_arr %a (2) 13 24 35       // во 2-ю строку пишем в 3 столбца, начиная с 1-го (элементы [2, 1] [2, 2] [2, 3])
msg %a [2 1]   %a [2 2]   %a [2 3]
End_script
// Пример 9 
init_arr %a (3, 2) 5 6 7 8     // в 3-ю строку пишем в 2 столбца, начиная с 1-го (получится 2 строки, элементы [3, 1] [3, 2] [4, 1] [4, 2])
msg %a [3 1]   %a [3 2]   %a [4 1]   %a [4 2]
End_script
// Пример 10
init_arr %a (3, 2, 7) 5 6 7 8      // в 3-ю строку пишем в 2 столбца, начиная с 7-го (получится 2 строки, элементы [3, 7] [3, 8] [4, 7] [4, 8])
msg %a [3 7]   %a [3 8]   %a [4 7]   %a [4 8]
End_script

Смотрите также

Set
Массивы
Sort array
Load array
Save array

История развития

2.30
Добавил команду присваивания нескольких элементов массива одной строкой:

init_arr <массив> [(номер_строки [число_столбцов [начальный_столбец]])] <набор_значений>

Разделителями слов считаются те же символы, что и в остальных командах. Исходный массив не удаляется. Отсутствующие параметры по-умолчанию принимаются равными '1'

init_arr %a 11 32 43 46 // одномерный массив, 4 эл-та (элементы [1] [2] [3] [4])
init_arr %a (2) 13 24 35 // во 2-ю строку пишем в 3 столбца, начиная с 1-го (элементы [2, 1] [2, 2] [2, 3])
init_arr %a (3, 2) 5 6 7 8 // в 3-ю строку пишем в 2 столбца, начиная с 1-го (получится 2 строки, элементы [3, 1] [3, 2] [4, 1] [4, 2])
init_arr %a (3, 2, 7) 5 6 7 8 // в 3-ю строку пишем в 2 столбца, начиная с 7-го (получится 2 строки, элементы [3, 7] [3, 8] [4, 7] [4, 8]

2.32
Добавил проверку на круглость скобок в команде 'init_arr'. Сообщение выводим, но выполнение не прерываем.
Исправил обязательное наличие пробела перед скобками в команде 'init_arr'.

2.38
Исправил изменение регистра первого элемента, при присваивании массива в команде 'init_arr'.