Двухмерных массив, возможно ли создать?
Требуется создать двухмерный массив переменных. Возможно, ли такой сделать?
Опишу конкретно задачу:
Имеем 1000 пронумерованных персонажей. У каждого персонажа свой комплект одежды, переменная хранит описания комплекта одежды. Пока все ясно, создаём массив текстовых переменных, индексом которых является номер персонажа.
Но, некоторые из персонажей имеют несколько комплектов одежды, не все…
Вопрос, как это все правильно организовать?
Можно конечно увеличить индекс массива на один ноль и персонажей нумеровать десятками, тогда каждый персонаж сможет иметь 10 комплектов одежды. Но возникают следующие вопросы:
Пустые переменные, индекс которых находятся между используемых, как-нибудь занимают память?
И как влияют, такие большие массивы с пустыми переменными на размер сохранения игры?
Лёха,
Проще всего юзать текстовые индексы:
$NPC['0, 0'] = '[name]Петя[/name] [/body]Футболка[/body] [legs]Шорты[/legs] [shoe]Шлёпки[/shoe] [age]18[/age]'
И никаких тебе пустых массивов. Информацию можно доставать через рэгеспы.
Лёха,
я бы использовал несколько одномерных массивов:
$объект[0]="Петя" & $расположение[0]="Комната"
$объект[1]="Отвёртка" & $расположение[1]="Петя"
$объект[2]="Гаечный ключ" & $расположение[2]="Петя"
$объект[3]="Молоток" & $расположение[3]="Петя"
$объект[4]="Вася" & $расположение[4]="Комната"
$объект[5]="Апельсин" & $расположение[5]="Вася"
$объект[6]="Радиоактивный пепел" & $расположение[6]="Вася"
$объект[7]="Орех нух-нух" & $расположение[7]="Вася"
Engineer, благодарю за ссылку. Только вот сама статья находится в нелогичном месте, сам бы ее не нашел.
Oliver:
И никаких тебе пустых массивов. Информацию можно доставать через рэгеспы.
Эээ,я только начинаю программировать, что такое “рэгеспы”, и как мне может помочь символьная переменная с тегами внутри?
В любом случае у вас в примере один комплект одежды, а требуется запомнить несколько таких. То есть НПСу могут подарить одежду, какая это одежде, не ясно, тогда у него будет несколько комплектов.
Статья находится в “массивах”, где ей еще быть?
Могу добавить, что вторую “мерность” можно определять в названии самой переменной. Например:
! массив $компл-оджд для каждого персонажа свой
$компл-оджд_Петя[]
$компл-оджд_Катя[]
! присваиваем комплекты
$компл-оджд_Петя[] = "Деловой костюм"
$компл-оджд_Петя[] = "Спальный костюм"
$компл-оджд_Петя[] = "Одежда охранника"
! выводим с помощью оператора dynamic используя "указатель", например:
#разговор_с_петей
$указатель = "Петя"
...
#вывод_одежды
dynamic '
i = -1
:цикл
i += 1
*nl $компл-оджд_<<$указатель>>[i]
if i<arrsize("$компл-оджд_<<$указатель>>")-1: jump "цикл"
killvar "i"
'