ИнформАрхив QSP

Использование массивов

Вкратце: в QSP есть возможность использовать массивы. Значит вместо одного значения одной переменной x = 10, можно сохранить несколько значение под одним именем, указывая в скобках после имени переменной код или индекс очередного значения вот так:

x[0] = 10
x[1] = 12
x[2] = 9

Это удобно тем, что вместо прямого указания номера индекса мы можем подставить значение какой-нибудь переменной. Так, мы можем, например, произвести вывод всех значений массива, используя всего лишь один цикл:

loop local i=0 while i<arrsize('x') step i+=1:
    *pl x[i]
end

В качестве индекса или кода может использоваться и строка:

сила['лебедь'] = 5
сила['рак'] = 3
$я = 'щука'
сила[] = 2

Значок "$" показывает что переменная строковая.

Начиная с версии плеера 5.8.0 можно создавать многомерные массивы без использования строковых индексов:

= 1
= 2
$ячейка[x,y] = "3х палубный"
$ячейка[(x+1),y] = "3х палубный"
$ячейка[(x+2),y] = "3х палубный"

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

="Кузнецов"
$имя_персонажа[0]=
$имя_персонажа[1]="Иванов"
$имя_персонажа[2]="Петров"
$имя_персонажа[3]="Сидоров"
расстояние[,$имя_персонажа[1]] = 3
расстояние[,$имя_персонажа[2]] = 4
расстояние[,$имя_персонажа[3]] = 5

В этом примере, зная имена персонажей можно получать и изменять расстояния между ними.

Также вместо имен можно использовать и их порядковые номера:

расстояние2[1,2] = 6
расстояние2[2,3] = 7
расстояние2[1,4] = 8

В этом примере у нас массив 2-х мерный. А измерений может быть и больше.

Автор: Ntropy

Отредактировал для соответствия версии библиотеке 5.8.0: Aleks Versus

26.Июл.10 12:08:22

Оригинал в теме: Подробности использования массивов, все вопросы сюда