Возможно ли создание двумерных массивов на гуи war3?
Эти одномерные выродочные массивы дико раздражают, ибо приходится делать кучу if then else, перепрыгивая с одного на другой, место элегантного решения.
Как пример:
numres = уровень предмета
numberplayer = такой-то игрок
PlayerRes[numres,numberplayer]=1 (что, предположим, устанавливает 1 единицу дерева игроку)
Все. Точка. Финиш. Можно идти гулять. Легко вернутся и добавить сюда что угодно.
Но мне приходится делать
numberplayer = такой-то игрок
if numres = 1 then
PlayerWood[numberplayer] = 1
else
if numres = 2 then
PlayerStone[numberplayer] = 2
else
И если мне вдруг захочется поменять код, то в каждое условие мне нужно добавлять ещё условия и ещё действия. И все это жутко-прежутко. Даже в цикл не загнать.

Принятый ответ

Похожие вопросы:

ответ
в джасс нету двухмерных
они есть в вджасс
можешь хоть 100 мерный но размеры массива надо заранее указывать размер массива
ответ
читаем последние комментарии, и юзаем поиск


Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
16
6 лет назад
0
Clamp, спеки есть?
Посмотреть как это реализовано.
0
12
6 лет назад
0
avuremybe:
Clamp, спеки есть?
Посмотреть как это реализовано.
100% как всегда делают, умножают первый индекс на максимальный размер второго (поэтому обязательно указание размеров!), прибавляют второй индекс, и загоняют это все в обычный одномерный массив.
0
30
6 лет назад
0
avuremybe, объяви 2D-массив и посмотри во что скомпилится, как получится — так и реализовано.
Sergarr, близко, но используется не совсем обычный массив, а расширенный (тоже фича vJass) ограничение количества элементов которого составляет что-то там ~65000, ЕМНИП.
0
16
6 лет назад
0
Clamp, да это понятно.
Но для этого нужно качать jngp и все равно искать мануал как это делать.
0
30
6 лет назад
0
avuremybe, написать в кастом код integer array test[10000][6] и сохранить, например. Результат в war3map.j. Скачать JNGP проблем не вижу, он весит 7 мб.
0
16
6 лет назад
0
А почему нельзя первые/последние два порядка использовать для номера игрока?
2
20
6 лет назад
Отредактирован DemonoiD
2
avuremybe, короче, бот сказал тоже самое. Если нужна таблица, где игрок - столбец, а ресурс строка, то чтобы получить 3 ресурс у 5 игрока, нужно обратиться к ячейке одномерного массива под номером 12*3-(12-5). Так же реализовано в жнгп. Мы просто представляем одномерный массив, как ленту разрезанную каждые n столбцов
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.