ACS. Разбираемся в массивах.

Что такое массивы?

Массив — это набор однотипных данных. Например массив строк, массив цифр, и т.д. Массив, удобно использовать когда, нужно объединить множество данных в одну группу. Для примера, разберем массив цветов.

Разбираемся в синтаксисе.

Перепишите следующий код к себе в ACS:

str colors[3];
colors[0] = "red";
colors[1] = "green";
colors[2] = "blue";

Синтаксис у массива, следующий:

тип название_массива[количество_элементов]
  • тип — задает тип хранимых значений
  • название_массива — указывает название массива
  • количество_элементов — задает максимальное количество элементов в массиве.

В нашем случае:

str colors[3];
  • Мы создали массив, который хранит строки (str)
  • название_массива у нас «colors«
  • количество_элеметов3, что значит, максимально, массив сможет вместить 3 строки (str).

Далее, мы присвоили строки, к каждому элементу массива.

colors[0] = "red";
colors[1] = "green";
colors[2] = "blue";

Строки задаются по индексу (номеру элемента массива).

colors[индекс]

Кстати, так как индекс задается с 0, то-есть индекс 0 возвращает первый элемент массива, то 2-ой индекс является последним. Если попробовать присвоить значение, к 4-му элементу массива (к элементу с индексом 3), то компилятор выдаст ошибку.

colors[3] = "imposible_color"; //Dont do this, this is error line

Также, заполнить массив, можно более простым способом.

str colors[3] = {"red", "green", "blue"};

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

colors[0] = "red";
colors[1] = "green";
colors[2] = "blue";

Меняют элементы, уже созданного массива.

Хорошо, с теорией разобрались, приступаем к практике.

Используем массивы.

В качестве примера, я написал вот такой скрипт.

#include "zcommon.acs"

str colors[3] = {"red", "green", "blue"};
int index = 0;

script 1 (void) {
  index++;
  if(index > 2) index = 0;
    print(s:colors[index]);
}

Данный скрипт, показывает на экране (print), следующий элемент массива. Если индекс вышел за пределы массива.

if(index > 2) index = 0;

То возвращаем его, к первому элементу массива.

Готово, осталось привязать этот скрипт к рычагу.

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

Итоговый результат.

avatar

Пожалуйста отключи блокировщик рекламы, или внеси сайт в белый список!

Please disable your adblocker or whitelist this site!