Меню сайта
Форма входа

Категории раздела
Уроки по созданию игр [38]
Программирование игр разной сложности
Игровые алгоритмы [24]
Алгоритмы, которые уже реализованы для разных жанров игр
Графика [5]
Учимся работать с графикой в Делфи
Мультимедиа [3]
Работа с мультимедийными возможностями Делфи
Другие статьи [18]
Статьи не вошедшие не в один из разделов
Ошибки [4]
Всевозможные ошибки и пути их решения
Четверг, 16.05.2024, 14:15
Приветствую Вас Гость

Статьи по программированию

Главная » Статьи » Другие статьи

Массивы Delphi

Массивы Delphi.

 

Каждый раз, когда нам приходится хранить большое количество однотипных данных мы вспоминаем о массивах. Возможен еще вариант с базами данных, но это уже совершенно другая история. Гораздо удобнее создать всего один массив нужного типа вместо целой кучи однотипных переменных и получать нужные данные просто указав номер элемента массива, который и содержит нужные данные.

 

Массивы делятся по типу и по размерности. Объявляются массивы в разделе var. Допустим, мы собираемся хранить в массиве целые числа. Таких чисел мы хотим хранить 10. Тогда объявляем наш массив таким образом:

 

Var

Mas:array[1..10] of integer;

 

Далее нам необходимо научиться заполнять числами наш массив. Существует два варианта заполнения массива. Первій вариант – ручной. Нам прийдется указывать номер каждого элемента массива и присваивать этому элементу нужное число:

 

Mas[1]:=12;

Mas[2]:=6;

Mas[3]:=4;

Mas[4]:=5;

Mas[5]:=3;

Mas[6]:=10;

Mas[7]:=9;

Mas[8]:=4;

Mas[9]:=5;

Mas[10]:=1;

 

Второй вариант это автоматическое заполнение массива случайными числами. Например случайные числа будут от нуля до девяти:

 

Randomize;

For i:=1 to 10 do

Mas[i]:=random(10);

 

Если числа должны быть с единицы то пишем так:

 

Mas[i]:=random(10)+1;

 

Если Вам необходимо хранить в массиве дробные числа, тогда нужно использовать тип массива real:

 

Var

Mas:array[1..10] of real;

 

Ручное заполнение будет віглядеть так:

 

Mas[1]:=1.13;

 

Автоматическое заполнение будет выглядеть немного сложнее, нежели у целых чисел:

 

For i:=1 to 10 do

Mas[i]:=random(100)*0.1;

 

Так же часто приходится в массиве хранить слова или предложения. Для этого используется тип массива string:

 

Var

Mas:array[1..10] of String;

 

Далее заполняем его вручную:

 

Mas[1]:=’skjdfhdkjghdfgjkdhgkjh’;

 

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

 

Мы с Вами сказали, что массивы отличаются своей размерностью. Не только по длине массива (кол-ву элементов), но и мерности. До этого все наши массивы были одномерными. То есть хранили в себе лишь элементы, которые нумеровались одним числом. Быают случаи, когда необходимо использовать двумерные массивы. Например, при создании компьютерных игр, в виде двухмерного массива представляют игровую карту (в двухмерных играх):

 

Var

Map:array[0..15,0..15] of integer;

 

Мы создали двухмерный массив игровой карты размером 16х16. Причем нумеруем элементы с нуля. Каждый элемент – это отдельная клеточка (ячейка) на игровом поле. Нумеруются ячейки двумя цифрами. Первая цифра означает координату икс, вторая – игрек. Теперь мы каждой из клеток можем присовить число, которое будет означать картинку поверхности, которая будет хранится в данной клетке:

 

Map[0,0]:=1;

 

Автоматическое заполнение так же происходит по аналогии с заполнением обычного массива типа integer:

 

For i:=0 to 15 do

For j:=0 to 15 do

Map[I,j]:=random(5);

 

Также массиві могут и трехмерніми. Трехмерній массив содержит элементы, которые нумеруются тремя цифрами Map[I,j,n]. Такие массивы используются, например, при создании трехмерных игр. Да и вообще массив массив может быть сколько угодно мерным. Ограничений как таковых я не знаю.

 

Но до этого мы работали лишь с теми массивами, размер которых мы знали заранее и указывали его в разделе var. Бывают случаи когда размер массива на не известен. Допустим мы хотим создать игровую двухмерную карту, а ее размер при создании укажет пользователь. Тогда нам прийдется использовать процедуру setlength. Внутри этой процедуры мы указываем имя массива и его размеры. Таким образом среда Delphi создаст єтот  массив и віделит под него необходимое количество памяти. Рассмотрим обьявление одномерного, двухмерного и трехмерного динамического (с неизвестным размером заранее) массивов:

 

Var

Mas:array of integer;

Mas2:array of array of integer;

Mas3:array of array of array of integer;

 

Выделяем память и создаем наши динамические массивы следующим образом:

 

Setlength(mas,5);

Setlength(mas2,6,7);

Setlength(mas3,10,10,5);

 

Ну вот, в принципе и все. Основніе особенности массивом я постарался обїяснить Вам в єтиой статье. Для создания компьютерніх игр єтих знаний вполне достаточно. И Вам они обязательно пригодятся. Желаю всем удачи в Ваших начинаниях по созданию игр! До встречи!

 

Автор: Соколов Виталий

Источник: delgame.at.ua

Категория: Другие статьи | Добавил: Armageddets (11.01.2015) | Автор: Массивы Delphi
Просмотров: 2517 | Теги: Массивы Delphi, создание игр в делфи, уроки по созданию игр | Рейтинг: 1.0/1
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Наш опрос
Оцените мой сайт
Всего ответов: 103
Мини-чат
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0