Динамический массив - Игростроение и развлечение

Форма входа

Приветствую Вас Гость!

Логин:
Пароль:

Наш опрос

Какая скорость вашего интернета?
Всего ответов: 165


    Случайное фото

    Статистика


Поддержите наш проект

WebMoney:
R309699065243
U292079291240
Z373355457648

Счётчики


Rambler's Top100
Рейтинг@Mail.ru

Динамический массив - Игростроение и развлечение

[ Новые сообщения · Участники · Правила форума · RSS ]

WWW Site Forum
Страница 1 из 11
Игростроение и развлечение » Программинг » Языки программирования и конструкторы » Динамический массив
Динамический массив
KostiaДата: Пятница, 22.02.2008, 15:53 | Сообщение # 1
Программист
Группа: Проверенные
Сообщений: 80
Репутация: 2
Статус: Offline
Динамические массивы это очень хорошая штука, особенно когда вы не знаете заранее сколько элементов вам понадобится! Конечно вы можете задать границы, но это не выход из положения! И так, вы не знаете, так сделайте чтобы ваша программа узнала и задала массив нужных размеров!
Я часто пользуюсь динамически созданными массивами! Допустим у нас есть движок + редактор карт, программист не знает сколько объектов на карте разместит пользователь, а программа знает этим грех не воспользоваться.
В разделе var нужно объявит массив:

var
m:array of gameobject;

Допустим, что пользователь поставил на карту 200 объектов, чтобы задать массив нужной длинны делаем так:
SetLength(массив,длинна массива);

SetLength(m,200);

Длинна массива стала 200. Счет начинается от нуля поэтому область будет такой m[0..199].
Допустим, что пользователь решит добавить еще один объект, ничего страшного просто снова вызываем SetLength только длинную ставим 201, все что было в этом массиве ранее не исчезнет, а останется на своих местах!

Теперь давайте поговорим о двухмерных массивах, тут почти все тоже самое. Допустим нам нужно создать массив из цветов равный размеру загружаемой картинки.

var
bmp: TBitMap;
colors: array of array of tcolor;
...
SetLength(colors,bmp.width,bmp.height);
...

Массив получился такой colors[0..bmp.width-1,0..bmp.height-1]
Тоже самое и с 3-х и 4-х мерными массивами.

Теперь осталось только научиться получать длинную массива, это делается элементарно
Length(массив)

Ну вот и все, теперь вы сможете не задумываться о количестве и не забывайте счет начинается с нуля!

 
ArribaДата: Среда, 26.11.2008, 12:11 | Сообщение # 2
Группа: Гости





А я полностью не согласен, лудше использовать динамические списки, из за того, что если ты допустим один раз задаш длинну динамического массива,а потом его длинна изменится то тебе нужно будет опять SetLength писать, а чё с данными станет неизвестно. А если списки использовать то ты можешь просто напросто запомнить элемент с которого начинать считывать данные и всё, остальное у тебя уже сидит в памяти и не изменится если ты этого не захочешь.т.е. получается цепочка данных с твоими разделителями причём большой длинны.
 
Игростроение и развлечение » Программинг » Языки программирования и конструкторы » Динамический массив
Страница 1 из 11
Поиск: