RU

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

Ntropy Moderator 26.07.2010 12:08 4 comments 11599 views

Ответ на вопрос заданный в сообщении #p1302

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

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

.
И последнее в качестве индекса или кода может использоваться и строка, это позволяет как индексы применять другие переменные:

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

P.S. значек “$” показывает что переменная строковая.

Большое спасибо, но вопрос был немного не в этом. Как можно работать с этими массивами, когда названия динамичны?

Удобнее делать не динамичное название, а использовать многомерный массив.
Ntropy,
если тебе не сложно, напиши подробно про использование многомерных массивов.

Gildmaster,
В QSP в массивах в качестве индекса можно использовать строки, которые в свою очередь могут складываться из нескольких строк. Это позволяет использовать массивы как многомерные. Например для заполнения карты можно записать:

x = 1
y = 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-х мерный. А измерений может быть и больше.

P.S. Gildmaster, заходи на канал http://tinyurl.com/qsp-irc, там у нас живое общение.

Также добавлю, что в примерах кода есть примеры и по массивам.

Log in or Register to post comments.